Commit graph

2620 commits

Author SHA1 Message Date
wave-builder[bot]
c411df40d5
chore: bump package version to 0.14.1-beta.1 2026-03-03 17:01:46 +00:00
Copilot
e2b2498741
UI component for vertical tab bar
Dragging in the vertical tab bar had two UX artifacts: the drop marker
reserved layout space (leaving a visible accent gap above selected
tabs), and hover styling could remain on the old row after drop until
the mouse moved. This updates drag visuals to be overlay-based and
forces hover recalculation at drag end.

- **Drop marker moved out of flow (no selected-tab accent gap)**
- Replaced per-row in-flow divider placeholders with a single absolutely
positioned drop line in the scroll container.
- Drop line now aligns to actual tab boundaries (`offsetTop` /
`offsetHeight`) so it covers the divider location directly.

- **Drop target rendering simplified**
- Container is `relative`; marker is conditionally rendered only while
reordering.
- `dropLineTop` is tracked during drag events and used to position the
marker without affecting layout.

- **Stale hover state cleared after drop**
- Added a minimal drag-lifecycle reset mechanism (`hoverResetVersion`)
and used it in `VTab` keys.
- On drag end/drop, rows remount once, clearing browser-retained
`:hover` on the old index immediately.

```tsx
<VTab key={`${tab.id}:${hoverResetVersion}`} ... />

{dragTabId != null && dropIndex != null && dropLineTop != null && (
    <div
        className="pointer-events-none absolute left-0 right-0 border-t-2 border-accent/80"
        style={{ top: dropLineTop, transform: "translateY(-1px)" }}
    />
)}
```

- **<screenshot>**
-
https://github.com/user-attachments/assets/8c25ef6f-c600-484e-a4fa-6ac83657b484

<!-- START COPILOT CODING AGENT TIPS -->
---

🔒 GitHub Advanced Security automatically protects Copilot coding agent
pull requests. You can protect all pull requests by enabling Advanced
Security for your repositories. [Learn more about Advanced
Security.](https://gh.io/cca-advanced-security)

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
2026-03-03 09:00:34 -08:00
Mike Sawka
b5d23e544e
v0.14.1 Release Notes and Onboarding (#2966) 2026-03-03 08:58:31 -08:00
Copilot
df24959e23
Add native 2+ arg RPC support and wire a concrete TestMultiArgCommand through server, generated clients, and CLI (#2963)
This PR extends WSH RPC command signatures to support `ctx + 2+ typed
args` while preserving existing `ctx` and `ctx + 1 arg` behavior. It
also adds a concrete `TestMultiArgCommand` end-to-end so the generated
Go/TS client surfaces can be inspected and exercised from CLI.

- **RPC wire + dispatch model**
- Added `wshrpc.MultiArg` (`args []any`) as the over-the-wire envelope
for 2+ arg commands.
- Extended RPC metadata to track all command arg types
(`CommandDataTypes`) and exposed a helper for normalized access.
  - Updated server adapter unmarshalling to:
    - decode `MultiArg` for 2+ arg commands,
    - validate arg count,
- re-unmarshal each arg into its declared type before invoking typed
handlers.
  - Kept single-arg commands on the existing non-`MultiArg` path.

- **Code generation (Go + TS)**
- Go codegen now emits multi-parameter wrappers for 2+ arg methods and
packs payload as `wshrpc.MultiArg`.
- TS codegen now emits multi-parameter API methods and packs payload as
`{ args: [...] }`.
  - 0/1-arg generation remains unchanged to avoid wire/API churn.

- **Concrete command added for validation**
  - Added to `WshRpcInterface`:
- `TestMultiArgCommand(ctx context.Context, arg1 string, arg2 int, arg3
bool) (string, error)`
- Implemented in `wshserver` with deterministic formatted return output
including source + all args.
- Updated `wsh test` command to call `TestMultiArgCommand` and print the
returned string.

- **Focused coverage**
- Added/updated targeted tests around RPC metadata and Go/TS multi-arg
codegen behavior, including command declaration for `testmultiarg`.

Example generated call shape:

```go
func TestMultiArgCommand(w *wshutil.WshRpc, arg1 string, arg2 int, arg3 bool, opts *wshrpc.RpcOpts) (string, error) {
    return sendRpcRequestCallHelper[string](
        w,
        "testmultiarg",
        wshrpc.MultiArg{Args: []any{arg1, arg2, arg3}},
        opts,
    )
}
```

<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
Co-authored-by: sawka <mike@commandline.dev>
2026-03-02 12:29:04 -08:00
Copilot
9d89f4372c
Complete onboarding preview coverage for init/telemetry-star flow and align preview state wiring (#2965)
The onboarding preview was missing the first two pages in the
new-install flow (`InitPage` and `NoTelemetryStarPage`). This update
adds those views to the preview and aligns state access with the current
store pattern so they render correctly in preview mode.

- **Preview coverage**
- Added `InitPage` and `NoTelemetryStarPage` to
`frontend/preview/previews/onboarding.preview.tsx` so the full early
onboarding path is visible in the preview server.

- **Settings access modernization**
- Replaced full `settingsAtom` usage in `InitPage` with targeted
`useSettingsKeyAtom("telemetry:enabled")`.
- Removes broad settings dependency and uses the existing preview-safe
settings path.

- **Preview bootstrap state init**
- Added `ClientModel.getInstance().initialize(null)` in
`frontend/preview/preview.tsx` to ensure `clientAtom` is initialized in
preview runtime without backend client data.

```tsx
// onboarding.tsx
const telemetrySetting = useSettingsKeyAtom("telemetry:enabled");
const clientData = useAtomValue(ClientModel.getInstance().clientAtom);
const [telemetryEnabled, setTelemetryEnabled] = useState<boolean>(!!telemetrySetting);

// preview.tsx
setWaveWindowType("preview");
ClientModel.getInstance().initialize(null);
```

- **<screenshot>**
- ![Onboarding
preview](https://github.com/user-attachments/assets/bf1aeb3d-3fd0-4169-bd3b-a79e1a865ca8)

<!-- START COPILOT CODING AGENT TIPS -->
---

🔒 GitHub Advanced Security automatically protects Copilot coding agent
pull requests. You can protect all pull requests by enabling Advanced
Security for your repositories. [Learn more about Advanced
Security.](https://gh.io/cca-advanced-security)

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
2026-03-02 12:28:29 -08:00
Copilot
4ec09cb611
Centralize proxy HTTP client creation in aiutil and remove redundant backend tests (#2961)
`makeHTTPClient(proxyURL)` had been duplicated across AI backends with
equivalent behavior. This change consolidates the logic into a single
helper in `aiutil` and updates backends to consume it, then removes
backend-local tests that only re-verified that shared utility behavior.

- **Shared client construction**
- Added `aiutil.MakeHTTPClient(proxyURL string) (*http.Client, error)`
in `pkg/aiusechat/aiutil/aiutil.go`.
- Standardizes proxy parsing and `http.Transport.Proxy` setup in one
place.
- Keeps streaming-safe client semantics (`Timeout: 0`) and existing
invalid proxy URL error behavior.

- **Backend refactor**
  - Removed duplicated client/proxy setup blocks from:
    - `pkg/aiusechat/openaichat/openaichat-backend.go`
    - `pkg/aiusechat/gemini/gemini-backend.go`
    - `pkg/aiusechat/openai/openai-backend.go`
    - `pkg/aiusechat/anthropic/anthropic-backend.go`
  - Replaced with direct calls to the shared helper.

- **Test cleanup**
- Deleted backend tests that only covered basic proxy client creation
and no backend-specific behavior:
    - `pkg/aiusechat/openaichat/openaichat-backend_test.go`
    - `pkg/aiusechat/gemini/gemini-backend_test.go`

```go
httpClient, err := aiutil.MakeHTTPClient(chatOpts.Config.ProxyURL)
if err != nil {
    return nil, nil, nil, err
}
resp, err := httpClient.Do(req)
```

<!-- START COPILOT CODING AGENT TIPS -->
---

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
2026-03-02 11:16:50 -08:00
Copilot
95a97ca932
Add Onboarding Flows to Preview Server (#2960)
`FilesPage` was previously previewed through a special path because
`EditBashrcCommand` (Monaco via `CodeEditor`) threw in preview mode.
With preview/global handling now fixed, preview can run the real Files
onboarding flow end-to-end without command overrides.

- **Files preview now uses the real FilesPage path**
  - `OnboardingPreview` renders `FilesPage` directly.
- Removed preview-only command injection/override behavior for Files
onboarding.

- **Reverted FilesPage customization**
  - Dropped optional command renderer plumbing added for preview.
  - Restored FilesPage to its original internal command rotation:
    `EditBashrcCommand -> ViewShortcutsCommand -> ViewLogoCommand`.

- **Result**
  - No Files-specific preview fork remains.
  - Preview and production use the same FilesPage command lifecycle.

```tsx
const commands = [
    (onComplete: () => void) => <EditBashrcCommand onComplete={onComplete} />,
    (onComplete: () => void) => <ViewShortcutsCommand isMac={isMac} onComplete={onComplete} />,
    (onComplete: () => void) => <ViewLogoCommand onComplete={onComplete} />,
];
```

<screenshot>

![Onboarding FilesPage preview using default
commands](https://github.com/user-attachments/assets/c5baf015-6204-41da-b72b-408ef137f32b)

</screenshot>

<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/wavetermdev/waveterm/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
Co-authored-by: sawka <mike@commandline.dev>
2026-03-02 11:06:01 -08:00
Mike Sawka
cff84773a6
minor changes (#2962) 2026-02-28 15:48:52 -08:00
wave-builder[bot]
e8d6ff5b05
chore: bump package version to 0.14.1-beta.0 2026-02-28 02:08:29 +00:00
Copilot
9c3cf984e8
Make frontend CSS color validation Chromium-only (remove DOM style fallback) (#2946)
The new color validator is used exclusively in the Electron/Chromium
frontend, so fallback parsing via temporary DOM elements is unnecessary.
This update tightens the implementation to rely on the browser-native
CSS capability check only.

- **Scope**
- Keep `validateCssColor(color: string): string` behavior unchanged
(returns normalized type for valid colors, throws on invalid).
  - Remove non-Chromium fallback logic from validation path.

- **Implementation**
  - **`frontend/util/color-validator.ts`**
    - `isValidCssColor` now exclusively uses:
      - `CSS.supports("color", color)`
- Removed fallback using `document.createElement(...).style.color`
assignment/parsing.

- **Behavioral contract (unchanged)**
- Valid values still return specific type strings (`hex`, `hex8`, `rgb`,
`rgba`, `hsl`, `keyword`, etc.).
  - Invalid values still throw `Error("Invalid CSS color: ...")`.

```ts
function isValidCssColor(color: string): boolean {
    if (typeof CSS == "undefined" || typeof CSS.supports != "function") {
        return false;
    }
    return CSS.supports("color", color);
}
```

<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/wavetermdev/waveterm/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
Co-authored-by: sawka <mike@commandline.dev>
2026-02-27 15:48:56 -08:00
Mike Sawka
b1d11f72c4
add noprofile/noninteractive to all powershell commands (#2959) 2026-02-27 15:46:36 -08:00
dependabot[bot]
350242d7b3
Bump rollup from 4.50.1 to 4.59.0 (#2958)
Bumps [rollup](https://github.com/rollup/rollup) from 4.50.1 to 4.59.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rollup/rollup/releases">rollup's
releases</a>.</em></p>
<blockquote>
<h2>v4.59.0</h2>
<h2>4.59.0</h2>
<p><em>2026-02-22</em></p>
<h3>Features</h3>
<ul>
<li>Throw when the generated bundle contains paths that would leave the
output directory (<a
href="https://redirect.github.com/rollup/rollup/issues/6276">#6276</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6275">#6275</a>:
Validate bundle stays within output dir (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
<h2>v4.58.0</h2>
<h2>4.58.0</h2>
<p><em>2026-02-20</em></p>
<h3>Features</h3>
<ul>
<li>Also support <code>__NO_SIDE_EFFECTS__</code> annotation before
variable declarations declaring function expressions (<a
href="https://redirect.github.com/rollup/rollup/issues/6272">#6272</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6256">#6256</a>:
docs: document PreRenderedChunk properties including isDynamicEntry and
isImplicitEntry (<a
href="https://github.com/njg7194"><code>@​njg7194</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6259">#6259</a>:
docs: Correct typo and improve sentence structure in docs for
<code>output.experimentalMinChunkSize</code> (<a
href="https://github.com/millerick"><code>@​millerick</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6260">#6260</a>:
fix(deps): update rust crate swc_compiler_base to v47 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6261">#6261</a>:
fix(deps): lock file maintenance minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6262">#6262</a>:
Avoid unnecessary cloning of the code string (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6263">#6263</a>:
fix(deps): update minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6265">#6265</a>:
chore(deps): lock file maintenance (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6267">#6267</a>:
fix(deps): update minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6268">#6268</a>:
chore(deps): update dependency eslint-plugin-unicorn to v63 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6269">#6269</a>:
chore(deps): update dependency lru-cache to v11 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6270">#6270</a>:
chore(deps): lock file maintenance (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6272">#6272</a>:
forward NO_SIDE_EFFECTS annotations to function expressions in variable
declarations (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
<h2>v4.57.1</h2>
<h2>4.57.1</h2>
<p><em>2026-01-30</em></p>
<h3>Bug Fixes</h3>
<ul>
<li>Fix heap corruption issue in Windows (<a
href="https://redirect.github.com/rollup/rollup/issues/6251">#6251</a>)</li>
<li>Ensure exports of a dynamic import are fully included when called
from a try...catch (<a
href="https://redirect.github.com/rollup/rollup/issues/6254">#6254</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6251">#6251</a>:
fix: Isolate and cache <code>process.report.getReport()</code> calls in
a child process for robust environment detection (<a
href="https://github.com/alan-agius4"><code>@​alan-agius4</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rollup/rollup/blob/master/CHANGELOG.md">rollup's
changelog</a>.</em></p>
<blockquote>
<h2>4.59.0</h2>
<p><em>2026-02-22</em></p>
<h3>Features</h3>
<ul>
<li>Throw when the generated bundle contains paths that would leave the
output directory (<a
href="https://redirect.github.com/rollup/rollup/issues/6276">#6276</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6275">#6275</a>:
Validate bundle stays within output dir (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
<h2>4.58.0</h2>
<p><em>2026-02-20</em></p>
<h3>Features</h3>
<ul>
<li>Also support <code>__NO_SIDE_EFFECTS__</code> annotation before
variable declarations declaring function expressions (<a
href="https://redirect.github.com/rollup/rollup/issues/6272">#6272</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6256">#6256</a>:
docs: document PreRenderedChunk properties including isDynamicEntry and
isImplicitEntry (<a
href="https://github.com/njg7194"><code>@​njg7194</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6259">#6259</a>:
docs: Correct typo and improve sentence structure in docs for
<code>output.experimentalMinChunkSize</code> (<a
href="https://github.com/millerick"><code>@​millerick</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6260">#6260</a>:
fix(deps): update rust crate swc_compiler_base to v47 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6261">#6261</a>:
fix(deps): lock file maintenance minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6262">#6262</a>:
Avoid unnecessary cloning of the code string (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6263">#6263</a>:
fix(deps): update minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6265">#6265</a>:
chore(deps): lock file maintenance (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6267">#6267</a>:
fix(deps): update minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6268">#6268</a>:
chore(deps): update dependency eslint-plugin-unicorn to v63 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6269">#6269</a>:
chore(deps): update dependency lru-cache to v11 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6270">#6270</a>:
chore(deps): lock file maintenance (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6272">#6272</a>:
forward NO_SIDE_EFFECTS annotations to function expressions in variable
declarations (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
<h2>4.57.1</h2>
<p><em>2026-01-30</em></p>
<h3>Bug Fixes</h3>
<ul>
<li>Fix heap corruption issue in Windows (<a
href="https://redirect.github.com/rollup/rollup/issues/6251">#6251</a>)</li>
<li>Ensure exports of a dynamic import are fully included when called
from a try...catch (<a
href="https://redirect.github.com/rollup/rollup/issues/6254">#6254</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6251">#6251</a>:
fix: Isolate and cache <code>process.report.getReport()</code> calls in
a child process for robust environment detection (<a
href="https://github.com/alan-agius4"><code>@​alan-agius4</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6252">#6252</a>:
chore(deps): update dependency lru-cache to v11 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6253">#6253</a>:
chore(deps): lock file maintenance minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6254">#6254</a>:
Fully include dynamic imports in a try-catch (<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ae846957f1"><code>ae84695</code></a>
4.59.0</li>
<li><a
href="b39616e917"><code>b39616e</code></a>
Update audit-resolve</li>
<li><a
href="c60770d7aa"><code>c60770d</code></a>
Validate bundle stays within output dir (<a
href="https://redirect.github.com/rollup/rollup/issues/6275">#6275</a>)</li>
<li><a
href="33f39c1f20"><code>33f39c1</code></a>
4.58.0</li>
<li><a
href="b61c40803b"><code>b61c408</code></a>
forward NO_SIDE_EFFECTS annotations to function expressions in variable
decla...</li>
<li><a
href="7f00689ec9"><code>7f00689</code></a>
Extend agent instructions</li>
<li><a
href="e7b2b85af0"><code>e7b2b85</code></a>
chore(deps): lock file maintenance (<a
href="https://redirect.github.com/rollup/rollup/issues/6270">#6270</a>)</li>
<li><a
href="2aa5da9baf"><code>2aa5da9</code></a>
fix(deps): update minor/patch updates (<a
href="https://redirect.github.com/rollup/rollup/issues/6267">#6267</a>)</li>
<li><a
href="4319837c54"><code>4319837</code></a>
chore(deps): update dependency lru-cache to v11 (<a
href="https://redirect.github.com/rollup/rollup/issues/6269">#6269</a>)</li>
<li><a
href="c3b6b4bdc4"><code>c3b6b4b</code></a>
chore(deps): update dependency eslint-plugin-unicorn to v63 (<a
href="https://redirect.github.com/rollup/rollup/issues/6268">#6268</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/rollup/rollup/compare/v4.50.1...v4.59.0">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by [GitHub Actions](<a
href="https://www.npmjs.com/~GitHub">https://www.npmjs.com/~GitHub</a>
Actions), a new releaser for rollup 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 />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rollup&package-manager=npm_and_yarn&previous-version=4.50.1&new-version=4.59.0)](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/wavetermdev/waveterm/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 15:44:33 -08:00
Copilot
4956c92c55
Make Wave home config writes atomic and serialized to avoid watcher partial reads (#2945)
`WriteWaveHomeConfigFile()` previously used direct `os.WriteFile`, which
can expose truncation/partial-write states to the JSON file watcher.
This change switches config persistence to temp-file + rename semantics
and serializes writes through a single process-wide lock for config file
writes.

- **Atomic file write helper**
  - Added `AtomicWriteFile()` in `pkg/util/fileutil/fileutil.go`.
- Writes to `<filename>.tmp` in the same directory, then renames to the
target path.
  - Performs temp-file cleanup on error paths.
- Introduced a shared suffix constant (`TempFileSuffix`) used by
implementation/tests.

- **Config write path update**
- Updated `WriteWaveHomeConfigFile()` in `pkg/wconfig/settingsconfig.go`
to:
- Use a package-level mutex (`configWriteLock`) so only one config write
runs at a time (across all config files).
- Call `fileutil.AtomicWriteFile(...)` instead of direct
`os.WriteFile(...)`.

- **Focused coverage for atomic behavior**
  - Added `pkg/util/fileutil/fileutil_test.go` with tests for:
- Successful atomic write (target file contains expected payload and no
leftover `.tmp` file).
    - Rename-failure path cleanup (temp file is removed).

```go
func WriteWaveHomeConfigFile(fileName string, m waveobj.MetaMapType) error {
    configWriteLock.Lock()
    defer configWriteLock.Unlock()

    fullFileName := filepath.Join(wavebase.GetWaveConfigDir(), fileName)
    barr, err := jsonMarshalConfigInOrder(m)
    if err != nil {
        return err
    }
    return fileutil.AtomicWriteFile(fullFileName, barr, 0644)
}
```

<!-- START COPILOT CODING AGENT TIPS -->
---

🔒 GitHub Advanced Security automatically protects Copilot coding agent
pull requests. You can protect all pull requests by enabling Advanced
Security for your repositories. [Learn more about Advanced
Security.](https://gh.io/cca-advanced-security)

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
2026-02-27 15:43:37 -08:00
Mike Sawka
e8ebe88651
Fix for Claude Code Scroll to Top Bug (#2956)
There may be more cases here that I don't know about, but this fixes a
good chunk of them. This catches the CC "repaint" transaction and forces
a scrollToBottom. That should handle context repaints and resize
repaints.

Also adds a new (hidden) terminal escape sequence debugger, and (in dev
mode) adds a last 50 writes cache that can be used to look at and debug
output.
2026-02-27 15:34:35 -08:00
Mike Sawka
1ab58ea98a
Fix bugs with connection switching (#2957)
* Add per blockId mutex to block controller resync
* Pass initial termsize through to startJob
2026-02-27 15:23:55 -08:00
dependabot[bot]
27f77f23d6
Bump the dev-dependencies-minor group with 4 updates (#2953)
Bumps the dev-dependencies-minor group with 4 updates:
[@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite),
[tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss),
[eslint-plugin-mdx](https://github.com/mdx-js/eslint-mdx) and
[@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli).

Updates `@tailwindcss/vite` from 4.1.18 to 4.2.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tailwindlabs/tailwindcss/releases"><code>@​tailwindcss/vite</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v4.2.1</h2>
<h3>Fixed</h3>
<ul>
<li>Allow trailing dash in functional utility names for backwards
compatibility (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19696">#19696</a>)</li>
<li>Properly detect classes containing <code>.</code> characters within
curly braces in MDX files (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19711">#19711</a>)</li>
</ul>
<h2>v4.2.0</h2>
<h3>Added</h3>
<ul>
<li>Add mauve, olive, mist, and taupe color palettes to the default
theme (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19627">#19627</a>)</li>
<li>Add <code>@tailwindcss/webpack</code> package to run Tailwind CSS as
a webpack plugin (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19610">#19610</a>)</li>
<li>Add <code>pbs-*</code> and <code>pbe-*</code> utilities for
<code>padding-block-start</code> and <code>padding-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>mbs-*</code> and <code>mbe-*</code> utilities for
<code>margin-block-start</code> and <code>margin-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>scroll-pbs-*</code> and <code>scroll-pbe-*</code>
utilities for <code>scroll-padding-block-start</code> and
<code>scroll-padding-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>scroll-mbs-*</code> and <code>scroll-mbe-*</code>
utilities for <code>scroll-margin-block-start</code> and
<code>scroll-margin-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>border-bs-*</code> and <code>border-be-*</code> utilities
for <code>border-block-start</code> and <code>border-block-end</code>
(<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>inline-*</code>, <code>min-inline-*</code>,
<code>max-inline-*</code> utilities for <code>inline-size</code>,
<code>min-inline-size</code>, and <code>max-inline-size</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19612">#19612</a>)</li>
<li>Add <code>block-*</code>, <code>min-block-*</code>,
<code>max-block-*</code> utilities for <code>block-size</code>,
<code>min-block-size</code>, and <code>max-block-size</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19612">#19612</a>)</li>
<li>Add <code>inset-s-*</code>, <code>inset-e-*</code>,
<code>inset-bs-*</code>, <code>inset-be-*</code> utilities for
<code>inset-inline-start</code>, <code>inset-inline-end</code>,
<code>inset-block-start</code>, and <code>inset-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19613">#19613</a>)</li>
<li>Add <code>font-features-*</code> utility for
<code>font-feature-settings</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19623">#19623</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Prevent double <code>@supports</code> wrapper for
<code>color-mix</code> values (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19450">#19450</a>)</li>
<li>Allow whitespace around <code>@source inline()</code> argument (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19461">#19461</a>)</li>
<li>Emit comment when source maps are saved to files when using
<code>@tailwindcss/cli</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19447">#19447</a>)</li>
<li>Detect utilities containing capital letters followed by numbers (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19465">#19465</a>)</li>
<li>Fix class extraction for Rails' strict locals (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19525">#19525</a>)</li>
<li>Align <code>@utility</code> name validation with Oxide scanner rules
(<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19524">#19524</a>)</li>
<li>Fix infinite loop when using <code>@variant</code> inside
<code>@custom-variant</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19633">#19633</a>)</li>
<li>Allow multiples of <code>.25</code> in <code>aspect-*</code>
fractions (e.g. <code>aspect-8.5/11</code>) (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19688">#19688</a>)</li>
<li>Ensure changes to external files listed via <code>@source</code>
trigger a full page reload when using <code>@tailwindcss/vite</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19670">#19670</a>)</li>
<li>Improve performance of Oxide scanner in bigger projects by reducing
file system walks (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19632">#19632</a>)</li>
<li>Ensure import aliases in Astro v5 work without crashing when using
<code>@tailwindcss/vite</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/19677">#19677</a>)</li>
<li>Allow escape characters in <code>@utility</code> names to improve
support with formatters such as Biome (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19626">#19626</a>)</li>
<li>Fix incorrect canonicalization results when canonicalizing multiple
times (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19675">#19675</a>)</li>
<li>Add <code>.jj</code> to default ignored content directories (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19687">#19687</a>)</li>
</ul>
<h3>Deprecated</h3>
<ul>
<li>Deprecate <code>start-*</code> and <code>end-*</code> utilities in
favor of <code>inset-s-*</code> and <code>inset-e-*</code> utilities (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19613">#19613</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md"><code>@​tailwindcss/vite</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>[4.2.1] - 2026-02-23</h2>
<h3>Fixed</h3>
<ul>
<li>Allow trailing dash in functional utility names for backwards
compatibility (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19696">#19696</a>)</li>
<li>Properly detect classes containing <code>.</code> characters within
curly braces in MDX files (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19711">#19711</a>)</li>
</ul>
<h2>[4.2.0] - 2026-02-18</h2>
<h3>Added</h3>
<ul>
<li>Add mauve, olive, mist, and taupe color palettes to the default
theme (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19627">#19627</a>)</li>
<li>Add <code>@tailwindcss/webpack</code> package to run Tailwind CSS as
a webpack plugin (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19610">#19610</a>)</li>
<li>Add <code>pbs-*</code> and <code>pbe-*</code> utilities for
<code>padding-block-start</code> and <code>padding-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>mbs-*</code> and <code>mbe-*</code> utilities for
<code>margin-block-start</code> and <code>margin-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>scroll-pbs-*</code> and <code>scroll-pbe-*</code>
utilities for <code>scroll-padding-block-start</code> and
<code>scroll-padding-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>scroll-mbs-*</code> and <code>scroll-mbe-*</code>
utilities for <code>scroll-margin-block-start</code> and
<code>scroll-margin-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>border-bs-*</code> and <code>border-be-*</code> utilities
for <code>border-block-start</code> and <code>border-block-end</code>
(<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>inline-*</code>, <code>min-inline-*</code>,
<code>max-inline-*</code> utilities for <code>inline-size</code>,
<code>min-inline-size</code>, and <code>max-inline-size</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19612">#19612</a>)</li>
<li>Add <code>block-*</code>, <code>min-block-*</code>,
<code>max-block-*</code> utilities for <code>block-size</code>,
<code>min-block-size</code>, and <code>max-block-size</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19612">#19612</a>)</li>
<li>Add <code>inset-s-*</code>, <code>inset-e-*</code>,
<code>inset-bs-*</code>, <code>inset-be-*</code> utilities for
<code>inset-inline-start</code>, <code>inset-inline-end</code>,
<code>inset-block-start</code>, and <code>inset-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19613">#19613</a>)</li>
<li>Add <code>font-features-*</code> utility for
<code>font-feature-settings</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19623">#19623</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Prevent double <code>@supports</code> wrapper for
<code>color-mix</code> values (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19450">#19450</a>)</li>
<li>Allow whitespace around <code>@source inline()</code> argument (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19461">#19461</a>)</li>
<li>Emit comment when source maps are saved to files when using
<code>@tailwindcss/cli</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19447">#19447</a>)</li>
<li>Detect utilities containing capital letters followed by numbers (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19465">#19465</a>)</li>
<li>Fix class extraction for Rails' strict locals (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19525">#19525</a>)</li>
<li>Align <code>@utility</code> name validation with Oxide scanner rules
(<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19524">#19524</a>)</li>
<li>Fix infinite loop when using <code>@variant</code> inside
<code>@custom-variant</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19633">#19633</a>)</li>
<li>Allow multiples of <code>.25</code> in <code>aspect-*</code>
fractions (e.g. <code>aspect-8.5/11</code>) (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19688">#19688</a>)</li>
<li>Ensure changes to external files listed via <code>@source</code>
trigger a full page reload when using <code>@tailwindcss/vite</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19670">#19670</a>)</li>
<li>Improve performance of Oxide scanner in bigger projects by reducing
file system walks (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19632">#19632</a>)</li>
<li>Ensure import aliases in Astro v5 work without crashing when using
<code>@tailwindcss/vite</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/19677">#19677</a>)</li>
<li>Allow escape characters in <code>@utility</code> names to improve
support with formatters such as Biome (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19626">#19626</a>)</li>
<li>Fix incorrect canonicalization results when canonicalizing multiple
times (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19675">#19675</a>)</li>
<li>Add <code>.jj</code> to default ignored content directories (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19687">#19687</a>)</li>
</ul>
<h3>Deprecated</h3>
<ul>
<li>Deprecate <code>start-*</code> and <code>end-*</code> utilities in
favor of <code>inset-s-*</code> and <code>inset-e-*</code> utilities (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19613">#19613</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1dce64ee7e"><code>1dce64e</code></a>
4.2.1 (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19714">#19714</a>)</li>
<li><a
href="1b16411919"><code>1b16411</code></a>
4.2.0 (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19695">#19695</a>)</li>
<li><a
href="d9fff9f595"><code>d9fff9f</code></a>
docs: update package README CI badge to main (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19692">#19692</a>)</li>
<li><a
href="bc6e4b85bf"><code>bc6e4b8</code></a>
Fallback to <code>config.createResolver</code> for <code>client</code>
and <code>ssr</code> environments in `@...</li>
<li><a
href="f212b0fc22"><code>f212b0f</code></a>
fix: restore full page reload for watched external files on Vite 7.1+
(<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19670">#19670</a>)</li>
<li><a
href="8ed67bf551"><code>8ed67bf</code></a>
Fix Tailwind CSS package README GitHub links (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19644">#19644</a>)</li>
<li><a
href="e3e85b364f"><code>e3e85b3</code></a>
[tailwindcss-vite] Add Register dependency messages logline (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19611">#19611</a>)</li>
<li>See full diff in <a
href="https://github.com/tailwindlabs/tailwindcss/commits/v4.2.1/packages/@tailwindcss-vite">compare
view</a></li>
</ul>
</details>
<br />

Updates `tailwindcss` from 4.1.18 to 4.2.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tailwindlabs/tailwindcss/releases">tailwindcss's
releases</a>.</em></p>
<blockquote>
<h2>v4.2.1</h2>
<h3>Fixed</h3>
<ul>
<li>Allow trailing dash in functional utility names for backwards
compatibility (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19696">#19696</a>)</li>
<li>Properly detect classes containing <code>.</code> characters within
curly braces in MDX files (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19711">#19711</a>)</li>
</ul>
<h2>v4.2.0</h2>
<h3>Added</h3>
<ul>
<li>Add mauve, olive, mist, and taupe color palettes to the default
theme (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19627">#19627</a>)</li>
<li>Add <code>@tailwindcss/webpack</code> package to run Tailwind CSS as
a webpack plugin (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19610">#19610</a>)</li>
<li>Add <code>pbs-*</code> and <code>pbe-*</code> utilities for
<code>padding-block-start</code> and <code>padding-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>mbs-*</code> and <code>mbe-*</code> utilities for
<code>margin-block-start</code> and <code>margin-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>scroll-pbs-*</code> and <code>scroll-pbe-*</code>
utilities for <code>scroll-padding-block-start</code> and
<code>scroll-padding-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>scroll-mbs-*</code> and <code>scroll-mbe-*</code>
utilities for <code>scroll-margin-block-start</code> and
<code>scroll-margin-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>border-bs-*</code> and <code>border-be-*</code> utilities
for <code>border-block-start</code> and <code>border-block-end</code>
(<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>inline-*</code>, <code>min-inline-*</code>,
<code>max-inline-*</code> utilities for <code>inline-size</code>,
<code>min-inline-size</code>, and <code>max-inline-size</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19612">#19612</a>)</li>
<li>Add <code>block-*</code>, <code>min-block-*</code>,
<code>max-block-*</code> utilities for <code>block-size</code>,
<code>min-block-size</code>, and <code>max-block-size</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19612">#19612</a>)</li>
<li>Add <code>inset-s-*</code>, <code>inset-e-*</code>,
<code>inset-bs-*</code>, <code>inset-be-*</code> utilities for
<code>inset-inline-start</code>, <code>inset-inline-end</code>,
<code>inset-block-start</code>, and <code>inset-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19613">#19613</a>)</li>
<li>Add <code>font-features-*</code> utility for
<code>font-feature-settings</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19623">#19623</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Prevent double <code>@supports</code> wrapper for
<code>color-mix</code> values (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19450">#19450</a>)</li>
<li>Allow whitespace around <code>@source inline()</code> argument (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19461">#19461</a>)</li>
<li>Emit comment when source maps are saved to files when using
<code>@tailwindcss/cli</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19447">#19447</a>)</li>
<li>Detect utilities containing capital letters followed by numbers (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19465">#19465</a>)</li>
<li>Fix class extraction for Rails' strict locals (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19525">#19525</a>)</li>
<li>Align <code>@utility</code> name validation with Oxide scanner rules
(<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19524">#19524</a>)</li>
<li>Fix infinite loop when using <code>@variant</code> inside
<code>@custom-variant</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19633">#19633</a>)</li>
<li>Allow multiples of <code>.25</code> in <code>aspect-*</code>
fractions (e.g. <code>aspect-8.5/11</code>) (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19688">#19688</a>)</li>
<li>Ensure changes to external files listed via <code>@source</code>
trigger a full page reload when using <code>@tailwindcss/vite</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19670">#19670</a>)</li>
<li>Improve performance of Oxide scanner in bigger projects by reducing
file system walks (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19632">#19632</a>)</li>
<li>Ensure import aliases in Astro v5 work without crashing when using
<code>@tailwindcss/vite</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/19677">#19677</a>)</li>
<li>Allow escape characters in <code>@utility</code> names to improve
support with formatters such as Biome (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19626">#19626</a>)</li>
<li>Fix incorrect canonicalization results when canonicalizing multiple
times (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19675">#19675</a>)</li>
<li>Add <code>.jj</code> to default ignored content directories (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19687">#19687</a>)</li>
</ul>
<h3>Deprecated</h3>
<ul>
<li>Deprecate <code>start-*</code> and <code>end-*</code> utilities in
favor of <code>inset-s-*</code> and <code>inset-e-*</code> utilities (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19613">#19613</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">tailwindcss's
changelog</a>.</em></p>
<blockquote>
<h2>[4.2.1] - 2026-02-23</h2>
<h3>Fixed</h3>
<ul>
<li>Allow trailing dash in functional utility names for backwards
compatibility (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19696">#19696</a>)</li>
<li>Properly detect classes containing <code>.</code> characters within
curly braces in MDX files (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19711">#19711</a>)</li>
</ul>
<h2>[4.2.0] - 2026-02-18</h2>
<h3>Added</h3>
<ul>
<li>Add mauve, olive, mist, and taupe color palettes to the default
theme (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19627">#19627</a>)</li>
<li>Add <code>@tailwindcss/webpack</code> package to run Tailwind CSS as
a webpack plugin (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19610">#19610</a>)</li>
<li>Add <code>pbs-*</code> and <code>pbe-*</code> utilities for
<code>padding-block-start</code> and <code>padding-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>mbs-*</code> and <code>mbe-*</code> utilities for
<code>margin-block-start</code> and <code>margin-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>scroll-pbs-*</code> and <code>scroll-pbe-*</code>
utilities for <code>scroll-padding-block-start</code> and
<code>scroll-padding-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>scroll-mbs-*</code> and <code>scroll-mbe-*</code>
utilities for <code>scroll-margin-block-start</code> and
<code>scroll-margin-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>border-bs-*</code> and <code>border-be-*</code> utilities
for <code>border-block-start</code> and <code>border-block-end</code>
(<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>inline-*</code>, <code>min-inline-*</code>,
<code>max-inline-*</code> utilities for <code>inline-size</code>,
<code>min-inline-size</code>, and <code>max-inline-size</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19612">#19612</a>)</li>
<li>Add <code>block-*</code>, <code>min-block-*</code>,
<code>max-block-*</code> utilities for <code>block-size</code>,
<code>min-block-size</code>, and <code>max-block-size</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19612">#19612</a>)</li>
<li>Add <code>inset-s-*</code>, <code>inset-e-*</code>,
<code>inset-bs-*</code>, <code>inset-be-*</code> utilities for
<code>inset-inline-start</code>, <code>inset-inline-end</code>,
<code>inset-block-start</code>, and <code>inset-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19613">#19613</a>)</li>
<li>Add <code>font-features-*</code> utility for
<code>font-feature-settings</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19623">#19623</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Prevent double <code>@supports</code> wrapper for
<code>color-mix</code> values (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19450">#19450</a>)</li>
<li>Allow whitespace around <code>@source inline()</code> argument (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19461">#19461</a>)</li>
<li>Emit comment when source maps are saved to files when using
<code>@tailwindcss/cli</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19447">#19447</a>)</li>
<li>Detect utilities containing capital letters followed by numbers (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19465">#19465</a>)</li>
<li>Fix class extraction for Rails' strict locals (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19525">#19525</a>)</li>
<li>Align <code>@utility</code> name validation with Oxide scanner rules
(<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19524">#19524</a>)</li>
<li>Fix infinite loop when using <code>@variant</code> inside
<code>@custom-variant</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19633">#19633</a>)</li>
<li>Allow multiples of <code>.25</code> in <code>aspect-*</code>
fractions (e.g. <code>aspect-8.5/11</code>) (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19688">#19688</a>)</li>
<li>Ensure changes to external files listed via <code>@source</code>
trigger a full page reload when using <code>@tailwindcss/vite</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19670">#19670</a>)</li>
<li>Improve performance of Oxide scanner in bigger projects by reducing
file system walks (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19632">#19632</a>)</li>
<li>Ensure import aliases in Astro v5 work without crashing when using
<code>@tailwindcss/vite</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/19677">#19677</a>)</li>
<li>Allow escape characters in <code>@utility</code> names to improve
support with formatters such as Biome (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19626">#19626</a>)</li>
<li>Fix incorrect canonicalization results when canonicalizing multiple
times (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19675">#19675</a>)</li>
<li>Add <code>.jj</code> to default ignored content directories (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19687">#19687</a>)</li>
</ul>
<h3>Deprecated</h3>
<ul>
<li>Deprecate <code>start-*</code> and <code>end-*</code> utilities in
favor of <code>inset-s-*</code> and <code>inset-e-*</code> utilities (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19613">#19613</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1dce64ee7e"><code>1dce64e</code></a>
4.2.1 (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19714">#19714</a>)</li>
<li><a
href="d15d92ca60"><code>d15d92c</code></a>
Allow trailing dash in functional utility names (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19696">#19696</a>)</li>
<li><a
href="1b16411919"><code>1b16411</code></a>
4.2.0 (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19695">#19695</a>)</li>
<li><a
href="6118f4f6a7"><code>6118f4f</code></a>
Fix/misc docs and tests (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19652">#19652</a>)</li>
<li><a
href="5a4a7eba3a"><code>5a4a7eb</code></a>
fix(canonicalize): prevent collapse cache pollution across calls (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19675">#19675</a>)</li>
<li><a
href="d0a5612872"><code>d0a5612</code></a>
Add mauve, olive, mist, and taupe color palettes (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19627">#19627</a>)</li>
<li><a
href="d9fff9f595"><code>d9fff9f</code></a>
docs: update package README CI badge to main (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19692">#19692</a>)</li>
<li><a
href="ed52d3e6c9"><code>ed52d3e</code></a>
feat: handle backslash in <code>@utility</code> name (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19626">#19626</a>)</li>
<li><a
href="6eb3b32434"><code>6eb3b32</code></a>
Allow multiples of <code>.25</code> in <code>aspect-*</code> fractions
(<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19688">#19688</a>)</li>
<li><a
href="8ed67bf551"><code>8ed67bf</code></a>
Fix Tailwind CSS package README GitHub links (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19644">#19644</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tailwindlabs/tailwindcss/commits/v4.2.1/packages/tailwindcss">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by [GitHub Actions](<a
href="https://www.npmjs.com/~GitHub">https://www.npmjs.com/~GitHub</a>
Actions), a new releaser for tailwindcss since your current version.</p>
</details>
<br />

Updates `eslint-plugin-mdx` from 3.6.2 to 3.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mdx-js/eslint-mdx/releases">eslint-plugin-mdx's
releases</a>.</em></p>
<blockquote>
<h2>eslint-plugin-mdx@3.7.0</h2>
<h3>Minor Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/mdx-js/eslint-mdx/pull/602">#602</a>
<a
href="e189e74c4a"><code>e189e74</code></a>
Thanks <a
href="https://github.com/astrochemx"><code>@​astrochemx</code></a>! -
feat: <code>eslint</code> 10 support</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/mdx-js/eslint-mdx/pull/606">#606</a>
<a
href="a38199079b"><code>a381990</code></a>
Thanks <a
href="https://github.com/remcohaszing"><code>@​remcohaszing</code></a>!
- chore: use OIDC for publishing</p>
</li>
<li>
<p>Updated dependencies [<a
href="a38199079b"><code>a381990</code></a>,
<a
href="00a836938f"><code>00a8369</code></a>]:</p>
<ul>
<li>eslint-mdx@3.7.0</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f717ff284a"><code>f717ff2</code></a>
chore: release package(s) (<a
href="https://redirect.github.com/mdx-js/eslint-mdx/issues/603">#603</a>)</li>
<li><a
href="a38199079b"><code>a381990</code></a>
chore: use OIDC for publishing (<a
href="https://redirect.github.com/mdx-js/eslint-mdx/issues/606">#606</a>)</li>
<li><a
href="00a836938f"><code>00a8369</code></a>
fix: remove unneeded dependency upon uvu (<a
href="https://redirect.github.com/mdx-js/eslint-mdx/issues/600">#600</a>)</li>
<li><a
href="e189e74c4a"><code>e189e74</code></a>
feat: <code>eslint</code> 10 support (<a
href="https://redirect.github.com/mdx-js/eslint-mdx/issues/602">#602</a>)</li>
<li>See full diff in <a
href="https://github.com/mdx-js/eslint-mdx/compare/eslint-plugin-mdx@3.6.2...eslint-plugin-mdx@3.7.0">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by [GitHub Actions](<a
href="https://www.npmjs.com/~GitHub">https://www.npmjs.com/~GitHub</a>
Actions), a new releaser for eslint-plugin-mdx since your current
version.</p>
</details>
<br />

Updates `@tailwindcss/cli` from 4.1.18 to 4.2.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tailwindlabs/tailwindcss/releases"><code>@​tailwindcss/cli</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v4.2.1</h2>
<h3>Fixed</h3>
<ul>
<li>Allow trailing dash in functional utility names for backwards
compatibility (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19696">#19696</a>)</li>
<li>Properly detect classes containing <code>.</code> characters within
curly braces in MDX files (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19711">#19711</a>)</li>
</ul>
<h2>v4.2.0</h2>
<h3>Added</h3>
<ul>
<li>Add mauve, olive, mist, and taupe color palettes to the default
theme (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19627">#19627</a>)</li>
<li>Add <code>@tailwindcss/webpack</code> package to run Tailwind CSS as
a webpack plugin (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19610">#19610</a>)</li>
<li>Add <code>pbs-*</code> and <code>pbe-*</code> utilities for
<code>padding-block-start</code> and <code>padding-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>mbs-*</code> and <code>mbe-*</code> utilities for
<code>margin-block-start</code> and <code>margin-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>scroll-pbs-*</code> and <code>scroll-pbe-*</code>
utilities for <code>scroll-padding-block-start</code> and
<code>scroll-padding-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>scroll-mbs-*</code> and <code>scroll-mbe-*</code>
utilities for <code>scroll-margin-block-start</code> and
<code>scroll-margin-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>border-bs-*</code> and <code>border-be-*</code> utilities
for <code>border-block-start</code> and <code>border-block-end</code>
(<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>inline-*</code>, <code>min-inline-*</code>,
<code>max-inline-*</code> utilities for <code>inline-size</code>,
<code>min-inline-size</code>, and <code>max-inline-size</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19612">#19612</a>)</li>
<li>Add <code>block-*</code>, <code>min-block-*</code>,
<code>max-block-*</code> utilities for <code>block-size</code>,
<code>min-block-size</code>, and <code>max-block-size</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19612">#19612</a>)</li>
<li>Add <code>inset-s-*</code>, <code>inset-e-*</code>,
<code>inset-bs-*</code>, <code>inset-be-*</code> utilities for
<code>inset-inline-start</code>, <code>inset-inline-end</code>,
<code>inset-block-start</code>, and <code>inset-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19613">#19613</a>)</li>
<li>Add <code>font-features-*</code> utility for
<code>font-feature-settings</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19623">#19623</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Prevent double <code>@supports</code> wrapper for
<code>color-mix</code> values (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19450">#19450</a>)</li>
<li>Allow whitespace around <code>@source inline()</code> argument (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19461">#19461</a>)</li>
<li>Emit comment when source maps are saved to files when using
<code>@tailwindcss/cli</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19447">#19447</a>)</li>
<li>Detect utilities containing capital letters followed by numbers (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19465">#19465</a>)</li>
<li>Fix class extraction for Rails' strict locals (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19525">#19525</a>)</li>
<li>Align <code>@utility</code> name validation with Oxide scanner rules
(<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19524">#19524</a>)</li>
<li>Fix infinite loop when using <code>@variant</code> inside
<code>@custom-variant</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19633">#19633</a>)</li>
<li>Allow multiples of <code>.25</code> in <code>aspect-*</code>
fractions (e.g. <code>aspect-8.5/11</code>) (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19688">#19688</a>)</li>
<li>Ensure changes to external files listed via <code>@source</code>
trigger a full page reload when using <code>@tailwindcss/vite</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19670">#19670</a>)</li>
<li>Improve performance of Oxide scanner in bigger projects by reducing
file system walks (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19632">#19632</a>)</li>
<li>Ensure import aliases in Astro v5 work without crashing when using
<code>@tailwindcss/vite</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/19677">#19677</a>)</li>
<li>Allow escape characters in <code>@utility</code> names to improve
support with formatters such as Biome (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19626">#19626</a>)</li>
<li>Fix incorrect canonicalization results when canonicalizing multiple
times (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19675">#19675</a>)</li>
<li>Add <code>.jj</code> to default ignored content directories (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19687">#19687</a>)</li>
</ul>
<h3>Deprecated</h3>
<ul>
<li>Deprecate <code>start-*</code> and <code>end-*</code> utilities in
favor of <code>inset-s-*</code> and <code>inset-e-*</code> utilities (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19613">#19613</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md"><code>@​tailwindcss/cli</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>[4.2.1] - 2026-02-23</h2>
<h3>Fixed</h3>
<ul>
<li>Allow trailing dash in functional utility names for backwards
compatibility (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19696">#19696</a>)</li>
<li>Properly detect classes containing <code>.</code> characters within
curly braces in MDX files (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19711">#19711</a>)</li>
</ul>
<h2>[4.2.0] - 2026-02-18</h2>
<h3>Added</h3>
<ul>
<li>Add mauve, olive, mist, and taupe color palettes to the default
theme (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19627">#19627</a>)</li>
<li>Add <code>@tailwindcss/webpack</code> package to run Tailwind CSS as
a webpack plugin (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19610">#19610</a>)</li>
<li>Add <code>pbs-*</code> and <code>pbe-*</code> utilities for
<code>padding-block-start</code> and <code>padding-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>mbs-*</code> and <code>mbe-*</code> utilities for
<code>margin-block-start</code> and <code>margin-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>scroll-pbs-*</code> and <code>scroll-pbe-*</code>
utilities for <code>scroll-padding-block-start</code> and
<code>scroll-padding-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>scroll-mbs-*</code> and <code>scroll-mbe-*</code>
utilities for <code>scroll-margin-block-start</code> and
<code>scroll-margin-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>border-bs-*</code> and <code>border-be-*</code> utilities
for <code>border-block-start</code> and <code>border-block-end</code>
(<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19601">#19601</a>)</li>
<li>Add <code>inline-*</code>, <code>min-inline-*</code>,
<code>max-inline-*</code> utilities for <code>inline-size</code>,
<code>min-inline-size</code>, and <code>max-inline-size</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19612">#19612</a>)</li>
<li>Add <code>block-*</code>, <code>min-block-*</code>,
<code>max-block-*</code> utilities for <code>block-size</code>,
<code>min-block-size</code>, and <code>max-block-size</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19612">#19612</a>)</li>
<li>Add <code>inset-s-*</code>, <code>inset-e-*</code>,
<code>inset-bs-*</code>, <code>inset-be-*</code> utilities for
<code>inset-inline-start</code>, <code>inset-inline-end</code>,
<code>inset-block-start</code>, and <code>inset-block-end</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19613">#19613</a>)</li>
<li>Add <code>font-features-*</code> utility for
<code>font-feature-settings</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19623">#19623</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Prevent double <code>@supports</code> wrapper for
<code>color-mix</code> values (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19450">#19450</a>)</li>
<li>Allow whitespace around <code>@source inline()</code> argument (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19461">#19461</a>)</li>
<li>Emit comment when source maps are saved to files when using
<code>@tailwindcss/cli</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19447">#19447</a>)</li>
<li>Detect utilities containing capital letters followed by numbers (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19465">#19465</a>)</li>
<li>Fix class extraction for Rails' strict locals (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19525">#19525</a>)</li>
<li>Align <code>@utility</code> name validation with Oxide scanner rules
(<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19524">#19524</a>)</li>
<li>Fix infinite loop when using <code>@variant</code> inside
<code>@custom-variant</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19633">#19633</a>)</li>
<li>Allow multiples of <code>.25</code> in <code>aspect-*</code>
fractions (e.g. <code>aspect-8.5/11</code>) (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19688">#19688</a>)</li>
<li>Ensure changes to external files listed via <code>@source</code>
trigger a full page reload when using <code>@tailwindcss/vite</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19670">#19670</a>)</li>
<li>Improve performance of Oxide scanner in bigger projects by reducing
file system walks (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19632">#19632</a>)</li>
<li>Ensure import aliases in Astro v5 work without crashing when using
<code>@tailwindcss/vite</code> (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/issues/19677">#19677</a>)</li>
<li>Allow escape characters in <code>@utility</code> names to improve
support with formatters such as Biome (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19626">#19626</a>)</li>
<li>Fix incorrect canonicalization results when canonicalizing multiple
times (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19675">#19675</a>)</li>
<li>Add <code>.jj</code> to default ignored content directories (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19687">#19687</a>)</li>
</ul>
<h3>Deprecated</h3>
<ul>
<li>Deprecate <code>start-*</code> and <code>end-*</code> utilities in
favor of <code>inset-s-*</code> and <code>inset-e-*</code> utilities (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19613">#19613</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1dce64ee7e"><code>1dce64e</code></a>
4.2.1 (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli/issues/19714">#19714</a>)</li>
<li><a
href="1b16411919"><code>1b16411</code></a>
4.2.0 (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli/issues/19695">#19695</a>)</li>
<li><a
href="d9c4cd8c7c"><code>d9c4cd8</code></a>
Update enhanced-resolve 5.18.4 → 5.19.0 (minor) (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli/issues/19658">#19658</a>)</li>
<li><a
href="d9fff9f595"><code>d9fff9f</code></a>
docs: update package README CI badge to main (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli/issues/19692">#19692</a>)</li>
<li><a
href="8ed67bf551"><code>8ed67bf</code></a>
Fix Tailwind CSS package README GitHub links (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli/issues/19644">#19644</a>)</li>
<li><a
href="d6ad8dddcf"><code>d6ad8dd</code></a>
Update enhanced-resolve 5.18.3 → 5.18.4 (patch) (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli/issues/19462">#19462</a>)</li>
<li><a
href="219e019b24"><code>219e019</code></a>
CLI: Emit comment when source maps are saved to files (<a
href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli/issues/19447">#19447</a>)</li>
<li>See full diff in <a
href="https://github.com/tailwindlabs/tailwindcss/commits/v4.2.1/packages/@tailwindcss-cli">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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 15:09:58 -08:00
dependabot[bot]
237dfa71c7
Bump google.golang.org/api from 0.267.0 to 0.269.0 (#2951)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.267.0 to 0.269.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.269.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.268.0...v0.269.0">0.269.0</a>
(2026-02-24)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3512">#3512</a>)
(<a
href="7565f1ce32">7565f1c</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>generator:</strong> Handle preview version pkg name (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3511">#3511</a>)
(<a
href="2a249ce376">2a249ce</a>)</li>
</ul>
<h2>v0.268.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.267.0...v0.268.0">0.268.0</a>
(2026-02-23)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3502">#3502</a>)
(<a
href="5ccf9b931d">5ccf9b9</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3505">#3505</a>)
(<a
href="f405df9cfc">f405df9</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3506">#3506</a>)
(<a
href="cda923ae8e">cda923a</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3507">#3507</a>)
(<a
href="e9015cc268">e9015cc</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3508">#3508</a>)
(<a
href="20fbcc1321">20fbcc1</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3509">#3509</a>)
(<a
href="20c1e0f7c7">20c1e0f</a>)</li>
<li>Update to go 1.26 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3504">#3504</a>)
(<a
href="cc5baec2a4">cc5baec</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.268.0...v0.269.0">0.269.0</a>
(2026-02-24)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3512">#3512</a>)
(<a
href="7565f1ce32">7565f1c</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>generator:</strong> Handle preview version pkg name (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3511">#3511</a>)
(<a
href="2a249ce376">2a249ce</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.267.0...v0.268.0">0.268.0</a>
(2026-02-23)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3502">#3502</a>)
(<a
href="5ccf9b931d">5ccf9b9</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3505">#3505</a>)
(<a
href="f405df9cfc">f405df9</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3506">#3506</a>)
(<a
href="cda923ae8e">cda923a</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3507">#3507</a>)
(<a
href="e9015cc268">e9015cc</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3508">#3508</a>)
(<a
href="20fbcc1321">20fbcc1</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3509">#3509</a>)
(<a
href="20c1e0f7c7">20c1e0f</a>)</li>
<li>Update to go 1.26 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3504">#3504</a>)
(<a
href="cc5baec2a4">cc5baec</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="312ac01a52"><code>312ac01</code></a>
chore(main): release 0.268.1 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3513">#3513</a>)</li>
<li><a
href="7565f1ce32"><code>7565f1c</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3512">#3512</a>)</li>
<li><a
href="2a249ce376"><code>2a249ce</code></a>
fix(generator): handle preview version pkg name (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3511">#3511</a>)</li>
<li><a
href="26ea8895bb"><code>26ea889</code></a>
chore(all): update all (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3498">#3498</a>)</li>
<li><a
href="5b078d9393"><code>5b078d9</code></a>
chore(main): release 0.268.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3503">#3503</a>)</li>
<li><a
href="20c1e0f7c7"><code>20c1e0f</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3509">#3509</a>)</li>
<li><a
href="20fbcc1321"><code>20fbcc1</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3508">#3508</a>)</li>
<li><a
href="e9015cc268"><code>e9015cc</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3507">#3507</a>)</li>
<li><a
href="cc5baec2a4"><code>cc5baec</code></a>
feat: update to go 1.26 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3504">#3504</a>)</li>
<li><a
href="cda923ae8e"><code>cda923a</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3506">#3506</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.267.0...v0.269.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.267.0&new-version=0.269.0)](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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 15:08:43 -08:00
dependabot[bot]
aa7befb5f1
Bump electron-builder from 26.8.0 to 26.8.1 in the electron-patch group (#2954)
Bumps the electron-patch group with 1 update:
[electron-builder](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder).

Updates `electron-builder` from 26.8.0 to 26.8.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/electron-userland/electron-builder/releases">electron-builder's
releases</a>.</em></p>
<blockquote>
<h2>electron-builder@26.8.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: always use package key when reading from dependency list
instead of package <code>name</code> by <a
href="https://github.com/mmaietta"><code>@​mmaietta</code></a> in <a
href="https://redirect.github.com/electron-userland/electron-builder/pull/9583">electron-userland/electron-builder#9583</a></li>
<li>chore: add logging summary to end of node collector to flag any
special cases/alerts by <a
href="https://github.com/mmaietta"><code>@​mmaietta</code></a> in <a
href="https://redirect.github.com/electron-userland/electron-builder/pull/9587">electron-userland/electron-builder#9587</a></li>
<li>chore: adding tolerance threshold (within 10 bytes) to vitest
snapshots to adjust for package manager instabilities by <a
href="https://github.com/mmaietta"><code>@​mmaietta</code></a> in <a
href="https://redirect.github.com/electron-userland/electron-builder/pull/9591">electron-userland/electron-builder#9591</a></li>
<li>chore: update node_modules snapshots due to transitive fixture
dependency changed by <a
href="https://github.com/mmaietta"><code>@​mmaietta</code></a> in <a
href="https://redirect.github.com/electron-userland/electron-builder/pull/9592">electron-userland/electron-builder#9592</a></li>
<li>fix(appimage): fix mime type directory in AppDir by <a
href="https://github.com/sabonerune"><code>@​sabonerune</code></a> in <a
href="https://redirect.github.com/electron-userland/electron-builder/pull/9589">electron-userland/electron-builder#9589</a></li>
<li>chore(deploy): Release (next) by <a
href="https://github.com/electron-builder-release-bot"><code>@​electron-builder-release-bot</code></a>[bot]
in <a
href="https://redirect.github.com/electron-userland/electron-builder/pull/9585">electron-userland/electron-builder#9585</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/electron-userland/electron-builder/compare/electron-builder@26.8.0...electron-builder@26.8.1">https://github.com/electron-userland/electron-builder/compare/electron-builder@26.8.0...electron-builder@26.8.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/electron-userland/electron-builder/blob/master/packages/electron-builder/CHANGELOG.md">electron-builder's
changelog</a>.</em></p>
<blockquote>
<h2>26.8.1</h2>
<h3>Patch Changes</h3>
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<p><a
href="4edd695045"><code>4edd695</code></a>
<a
href="8940ec63ba"><code>8940ec6</code></a>
<a
href="4edd695045"><code>4edd695</code></a>
<a
href="dde4309b91"><code>dde4309</code></a></p>
<!-- raw HTML omitted -->
<ul>
<li><code>app-builder-lib@26.8.1</code></li>
<li><code>builder-util@26.8.1</code></li>
<li><code>dmg-builder@26.8.1</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9418d2c0fb"><code>9418d2c</code></a>
chore(deploy): Release v26.8.1 (<a
href="https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder/issues/9585">#9585</a>)</li>
<li>See full diff in <a
href="https://github.com/electron-userland/electron-builder/commits/electron-builder@26.8.1/packages/electron-builder">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=electron-builder&package-manager=npm_and_yarn&previous-version=26.8.0&new-version=26.8.1)](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 <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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 15:08:16 -08:00
Copilot
b2f3129aa0
Add wsh debugterm (#2947)
`wsh debugterm` currently decodes terminal bytes sourced from backend
block files. This extends it with a stdin-driven path so FE-emitted
payloads like `["...", "..."]` can be decoded directly without requiring
block lookup/RPC in that mode.

- **CLI surface**
  - Added new mode: `--mode stdin`
  - Updated mode help text to: `hex`, `decode`, `stdin`
  - Centralized mode validation via `getDebugTermMode()`

- **Execution path split**
  - Added mode-aware pre-run (`debugTermPreRun`):
    - `stdin` mode: skips RPC setup
    - `hex`/`decode`: keeps existing RPC setup behavior
  - `stdin` mode now:
    - reads all stdin
    - parses JSON as `[]string`
    - concatenates entries and runs existing decode formatter

- **Parsing support**
  - Added `parseDebugTermStdinData([]byte) ([]byte, error)`
  - Error messaging explicitly requires a JSON array of strings

- **Tests**
  - Added focused coverage for:
    - valid stdin JSON array parsing + decoded output
    - invalid stdin JSON input

```go
stdinData, _ := io.ReadAll(WrappedStdin)
termData, err := parseDebugTermStdinData(stdinData) // expects []string JSON
if err != nil { return err }
WriteStdout("%s", formatDebugTermDecode(termData))
```

<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/wavetermdev/waveterm/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
Co-authored-by: sawka <mike@commandline.dev>
2026-02-27 10:24:26 -08:00
Mike Sawka
c5afeb8747
simplify scrollbar code in terminal, simplify fit code (#2944) 2026-02-26 16:07:52 -08:00
Copilot
f1e06c7ef9
Add groq AI mode provider defaults and docs (#2942)
This change adds first-class `groq` provider support to Wave AI mode
resolution and documents it in the Wave AI modes guide. Users can now
configure Groq modes via `ai:provider` with provider defaults applied
automatically.

- **Provider support in backend config resolution**
  - Added `groq` as a recognized AI provider constant.
  - Added Groq provider defaults in mode resolution:
    - `ai:apitype`: `openai-chat`
    - `ai:endpoint`: `https://api.groq.com/openai/v1/chat/completions`
    - `ai:apitokensecretname`: `GROQ_KEY`

- **Schema/config surface update**
- Extended `AIModeConfigType` provider enum to include `groq`, so
`ai:provider: "groq"` is valid in Wave AI config.

- **Documentation updates (`waveai-modes.mdx`)**
  - Added `groq` to supported providers.
- Added a Groq-specific configuration example and default behavior
notes.
  - Updated provider reference and capability guidance to include Groq.

- **Focused coverage**
- Added a targeted unit test for Groq provider default application in
`applyProviderDefaults`.

```json
{
  "groq-kimi-k2": {
    "display:name": "Groq - Kimi K2",
    "ai:provider": "groq",
    "ai:model": "moonshotai/kimi-k2-instruct"
  }
}
```

<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
2026-02-26 09:50:05 -08:00
우연
46ab0ad1c8
docs: add Korean README translation (#2943)
## Summary
- Add `README.ko.md` as a Korean translation of the root README.
- Add a centered language switcher block to `README.md` and
`README.ko.md`.
- Keep the change small and docs-only (no code/runtime behavior
changes).

## Motivation
I am a Korean developer and a frequent Wave Terminal user.
I read the README often, and noticed there was no Korean README
available, so I prepared this translation to improve accessibility for
Korean users.

## Ongoing Contribution Intent
As an active Wave Terminal user, I can continue contributing incremental
Korean localization updates after this PR is reviewed.

## Scope Notes
- One logical change in a single PR.
- Focused only on documentation, aligned with the contribution guide for
small, obvious docs improvements.
2026-02-26 09:49:35 -08:00
Mike Sawka
cfbdc2554c
keep the terminal scrolled to the bottom across resizes if it was at the bottom (#2941) 2026-02-25 22:39:46 -08:00
Mike Sawka
296760d2cd
Fix IME issues (#2938) 2026-02-25 16:07:56 -08:00
Mike Sawka
8306c6bbe7
remove orphaned style.scss, make windowtype.ts, small CSS cleanup (#2939)
also duplicates rules.md for kilocode which was not picking it up from
the .roo directory
2026-02-25 16:07:13 -08:00
Mike Sawka
ba7aea715e
Better integration for terminal links (better context-menu and add a tooltip) (#2934)
addresses issue #2901
2026-02-25 13:03:41 -08:00
Copilot
ed7fa40300
Refine RemoteFileMultiInfoCommand semantics: dedup inputs, per-path stat errors, and cancellation (#2935)
This follow-up tightens the new multi-file remote stat RPC behavior to
match expected usage: duplicate input paths are skipped, per-path stat
failures no longer fail the entire call, and cancellation is respected
during iteration.

- **RPC response model**
  - Added `staterror` to `FileInfo`:
    - `StatError string \`json:"staterror,omitempty"\``
  - Generated TS type now exposes `staterror?: string` on `FileInfo`.

- **`RemoteFileMultiInfoCommand` behavior updates**
- **Dedup:** if an input path key is already present in the result map,
the loop continues.
- **Non-fatal stat failures:** on `fileInfoInternal` error, the command
now emits a `FileInfo` entry for that input with:
    - resolved `path`, `dir`, `name`
    - `staterror` populated with `err.Error()`
    - continues processing remaining paths.
- **Cancellation:** checks `ctx.Err()` at the top of each iteration and
returns immediately if canceled.

- **PR scope cleanup**
  - Removed the previously added test file from this PR per request.

```go
if _, found := rtn[path]; found {
    continue
}
if ctx.Err() != nil {
    return nil, ctx.Err()
}
fileInfo, err := impl.fileInfoInternal(cleanedPath, false)
if err != nil {
    rtn[path] = wshrpc.FileInfo{
        Path:      wavebase.ReplaceHomeDir(cleanedPath),
        Dir:       computeDirPart(cleanedPath),
        Name:      filepath.Base(cleanedPath),
        StatError: err.Error(),
    }
    continue
}
```

<!-- START COPILOT CODING AGENT TIPS -->
---

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
2026-02-25 12:52:50 -08:00
Copilot
624476fa33
Add terminal cursor style/blink config with block-level overrides (#2933)
Adds support for configuring terminal cursor style and blink behavior in
terminal blocks, with hierarchical resolution (block metadata →
connection overrides → global settings). New keys are `term:cursor`
(`block`/`underline`/`bar`, default `block`) and `term:cursorblink`
(`bool`, default `false`).

- **Config surface: new terminal keys**
  - Added to global settings schema/types:
    - `pkg/wconfig/settingsconfig.go`
  - Added to block metadata typing:
    - `pkg/waveobj/wtypemeta.go`
  - Added default values:
    - `pkg/wconfig/defaultconfig/settings.json`
      - `"term:cursor": "block"`
      - `"term:cursorblink": false`

- **Frontend terminal behavior (xterm options)**
  - `frontend/app/view/term/termwrap.ts`
- Added `setCursorStyle()` with value normalization (`underline`/`bar`
else fallback `block`)
    - Added `setCursorBlink()`
- Applies both options on terminal construction via
`getOverrideConfigAtom(...)`
  - `frontend/app/view/term/term-model.ts`
    - Subscribes to `term:cursor` and `term:cursorblink` override atoms
- Propagates live updates to `term.options.cursorStyle` /
`term.options.cursorBlink`
    - Cleans up subscriptions in `dispose()`

- **Generated artifacts**
  - Regenerated config/type outputs after Go type additions:
    - `schema/settings.json`
    - `pkg/wconfig/metaconsts.go`
    - `pkg/waveobj/metaconsts.go`
    - `frontend/types/gotypes.d.ts`

- **Docs**
  - Updated config reference and default config example:
    - `docs/docs/config.mdx`

```ts
// termwrap.ts
this.setCursorStyle(globalStore.get(getOverrideConfigAtom(this.blockId, "term:cursor")));
this.setCursorBlink(globalStore.get(getOverrideConfigAtom(this.blockId, "term:cursorblink")) ?? false);

// term-model.ts (live updates)
const termCursorAtom = getOverrideConfigAtom(blockId, "term:cursor");
this.termCursorUnsubFn = globalStore.sub(termCursorAtom, () => {
    this.termRef.current?.setCursorStyle(globalStore.get(termCursorAtom));
});
```

<!-- START COPILOT CODING AGENT TIPS -->
---

🔒 GitHub Advanced Security automatically protects Copilot coding agent
pull requests. You can protect all pull requests by enabling Advanced
Security for your repositories. [Learn more about Advanced
Security.](https://gh.io/cca-advanced-security)

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
Co-authored-by: sawka <mike@commandline.dev>
2026-02-25 12:40:20 -08:00
Copilot
96ad7a5c5b
Wire deterministic context-menu close signaling across Electron and renderer (#2932)
Context-menu opens previously produced renderer callbacks only on
selection (0 or 1 events). This change makes the lifecycle
deterministic: every menu open now emits exactly one completion signal,
with `null` on cancel and item id on selection.

- **Main process: single terminal callback per popup**
  - Updated `emain/emain-menu.ts` to use `menu.popup({ callback })`.
  - Tracks whether a menu item click occurred during the popup.
- Emits `contextmenu-click: null` only when the menu closes without
selection.
  - Suppresses duplicate close events when a click already fired.

- **Preload + API typing: nullable context-menu callback payload**
  - Updated preload bridge and `frontend/types/custom.d.ts` so:
    - `onContextMenuClick` now accepts `(id: string | null) => void`.
- Keeps existing channel semantics while allowing explicit cancel
signal.

- **Renderer context menu model: close/select/cancel hooks**
  - Extended `showContextMenu` with optional `opts`:
    - `onSelect?: (item) => void`
    - `onCancel?: () => void`
    - `onClose?: (item: MenuItem | null) => void`
  - Execution order on selection:
    1. original item `click`
    2. `onSelect`
    3. `onClose`
  - Execution order on cancel:
    1. `onCancel`
    2. `onClose(null)`

- **Targeted behavior tests**
  - Expanded `frontend/app/store/contextmenu.test.ts` to verify:
    - singleton wiring still initializes once,
    - selection path ordering (`click -> onSelect -> onClose`),
    - cancel path ordering (`onCancel -> onClose(null)`).

```ts
ContextMenuModel.getInstance().showContextMenu(menu, e, {
    onSelect: (item) => { /* after item.click */ },
    onCancel: () => { /* close without selection */ },
    onClose: (itemOrNull) => { /* always called */ },
});
```

<screenshot>

Not applicable — this is a behavioral/API flow change in native context
menu lifecycle rather than a visual UI update.

</screenshot>

<!-- START COPILOT CODING AGENT TIPS -->
---

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
Co-authored-by: sawka <mike@commandline.dev>
2026-02-25 12:39:48 -08:00
Mike Sawka
752265fed7
add a preview component for tabs, update contextmenu model w/ getInstance method (#2927) 2026-02-25 12:39:07 -08:00
Copilot
200863bbbc
Remove unused frontend notification system and dev-only updater notification UI (#2929)
This PR removes the legacy notification pipeline from the frontend
(`pushNotification`, removal helpers, notification atoms/types, and
notification UI components). The updater status notification path was
only wired through this system and dev-only rendering in `App`, so the
entire path is deleted.

- **Store/API cleanup**
  - Removed notification functions from `frontend/app/store/global.ts`:
    - `pushNotification`
    - `removeNotificationById`
    - `removeNotification`
    - internal add/update helper
- Removed notification API exposure from `frontend/wave.ts`
(`window.pushNotification`, `window.removeNotificationById`).

- **Global atom/type cleanup**
- Removed notification atoms from `frontend/app/store/global-atoms.ts`:
    - `notifications`
    - `notificationPopoverMode`
- Removed notification-related fields/types from
`frontend/types/custom.d.ts`:
    - `GlobalAtomsType.notifications`
    - `GlobalAtomsType.notificationPopoverMode`
    - `NotificationType`
    - `NotificationActionType`

- **UI removal**
- Removed notification rendering from `frontend/app/app.tsx` by deleting
the `NotificationBubbles` import and dev-guarded render branch.
- Deleted the entire notification UI module under
`frontend/app/notification/`:
    - `notificationbubbles.tsx/.scss`
    - `notificationitem.tsx/.scss`
    - `notificationpopover.tsx`
    - `updatenotifier.tsx`
    - `usenotification.tsx`

- **Representative diff**
  ```tsx
  // before (app.tsx)
import { NotificationBubbles } from
"./notification/notificationbubbles";
  ...
  {isDev() ? <NotificationBubbles></NotificationBubbles> : null}

  // after
  // notification import and render removed
  ```

<screenshot>

UI reference provided for this change set:  

https://github.com/user-attachments/assets/6f56b16f-95c9-4a5e-ada8-18ecdc9a1ff8

</screenshot>

<!-- START COPILOT CODING AGENT TIPS -->
---

🔒 GitHub Advanced Security automatically protects Copilot coding agent
pull requests. You can protect all pull requests by enabling Advanced
Security for your repositories. [Learn more about Advanced
Security.](https://gh.io/cca-advanced-security)

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
2026-02-24 12:49:13 -08:00
Mike Sawka
578f1f3ba3
quick fix for #2918 (refocus block after magnify button click) (#2930) 2026-02-24 12:48:47 -08:00
Copilot
1c5f2f9840
Remove unused FlashError pipeline (UI + global state + style/type surface) (#2928)
`FlashError` was legacy UI/state that was never wired into real runtime
flows (only self-referenced and window-exported for ad-hoc testing).
This PR removes that dead path end-to-end to reduce global surface area
and stale styling/types.

- **Scope: UI removal (`frontend/app/app.tsx`)**
- Deleted the `FlashError` component and its render site (`<FlashError
/>`).
- Removed now-unused imports tied to that component (`removeFlashError`,
`Fragment`, `useState`).

- **Scope: global store cleanup (`frontend/app/store/global.ts`,
`frontend/app/store/global-atoms.ts`)**
  - Removed `pushFlashError` / `removeFlashError`.
- Removed `flashErrors` atom from global atom initialization and
registry.
- Kept notification path intact (`pushNotification`,
`removeNotificationById`, etc.).

- **Scope: external/debug surface cleanup (`frontend/wave.ts`)**
- Removed `pushFlashError` from imports and from `window` export wiring.

- **Scope: type + style cleanup (`frontend/types/custom.d.ts`,
`frontend/app/app.scss`, `frontend/app/theme.scss`)**
  - Removed `GlobalAtomsType.flashErrors`.
  - Removed `FlashErrorType`.
- Removed `.flash-error-container` style block and related z-index token
`--zindex-flash-error-container`.

```ts
// before
(window as any).pushFlashError = pushFlashError;

// after
(window as any).pushNotification = pushNotification;
```

- **`<screenshot>`**
- User-provided screenshot URL (if suitable for PR timeline context):

https://github.com/user-attachments/assets/aacc2e61-a65c-4dbf-bfcc-f9f99a490f20

<!-- START COPILOT CODING AGENT TIPS -->
---

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
2026-02-24 12:11:38 -08:00
Mike Sawka
4dd83c3ac2
update some npm deps (#2924) 2026-02-23 18:54:10 -08:00
dependabot[bot]
661d7c070d
Bump @vitejs/plugin-react-swc from 4.2.2 to 4.2.3 in the dev-dependencies-patch group (#2874)
Bumps the dev-dependencies-patch group with 1 update:
[@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc).

Updates `@vitejs/plugin-react-swc` from 4.2.2 to 4.2.3
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc/CHANGELOG.md"><code>@​vitejs/plugin-react-swc</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>4.2.3 (2026-02-02)</h2>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="12914fa8c1"><code>12914fa</code></a>
release: plugin-react-swc@4.2.3</li>
<li><a
href="99e480cf01"><code>99e480c</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc/issues/1090">#1090</a>)</li>
<li><a
href="4a858ea053"><code>4a858ea</code></a>
chore(deps): update dependency <code>@​types/react</code> to ^19.2.10
(<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc/issues/1088">#1088</a>)</li>
<li><a
href="45da3a89b9"><code>45da3a8</code></a>
fix(deps): update swc monorepo (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc/issues/1089">#1089</a>)</li>
<li><a
href="77f5e429d4"><code>77f5e42</code></a>
fix(deps): update react 19.2.4 (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc/issues/1084">#1084</a>)</li>
<li><a
href="e327da491f"><code>e327da4</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc/issues/1083">#1083</a>)</li>
<li><a
href="8528e98bb9"><code>8528e98</code></a>
chore(deps): update dependency <code>@​types/react</code> to ^19.2.9 (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc/issues/1082">#1082</a>)</li>
<li><a
href="58dfb9d70f"><code>58dfb9d</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc/issues/1066">#1066</a>)</li>
<li><a
href="fefad3dfd9"><code>fefad3d</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc/issues/1048">#1048</a>)</li>
<li><a
href="a5124db721"><code>a5124db</code></a>
chore(deps): update dependency <code>@​types/react</code> to ^19.2.8 (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc/issues/1047">#1047</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitejs/vite-plugin-react/commits/plugin-react-swc@4.2.3/packages/plugin-react-swc">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@vitejs/plugin-react-swc&package-manager=npm_and_yarn&previous-version=4.2.2&new-version=4.2.3)](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 <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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-23 18:45:07 -08:00
dependabot[bot]
b96d74d953
Bump tar from 7.5.7 to 7.5.9 (#2896)
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.7 to 7.5.9.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1f0c2c9006"><code>1f0c2c9</code></a>
7.5.9</li>
<li><a
href="fbb08518bf"><code>fbb0851</code></a>
build minified version as default export</li>
<li><a
href="6b8eba0ef3"><code>6b8eba0</code></a>
7.5.8</li>
<li><a
href="2cb1120bce"><code>2cb1120</code></a>
fix(unpack): improve UnpackSync symlink error &quot;into&quot; path
accuracy</li>
<li><a
href="d18e4e1f84"><code>d18e4e1</code></a>
fix: do not write linkpaths through symlinks</li>
<li>See full diff in <a
href="https://github.com/isaacs/node-tar/compare/v7.5.7...v7.5.9">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/~isaacs">isaacs</a>, a new releaser for tar
since your current version.</p>
</details>
<details>
<summary>Install script changes</summary>
<p>This version adds <code>prepare</code> script that runs during
installation. Review the package contents before updating.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tar&package-manager=npm_and_yarn&previous-version=7.5.7&new-version=7.5.9)](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/wavetermdev/waveterm/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-23 18:42:41 -08:00
Mike Sawka
110e2b90a1
update eslint to v9 (and fix all eslint errors) (#2923) 2026-02-23 18:42:17 -08:00
Copilot
a79a534975
Refine global atom split: keep atom init in global-atoms.ts, move About-menu wiring back to global.ts (#2900)
This refactor keeps `global-atoms.ts` as the owner of atom
state/initialization while correcting ownership boundaries for UI/event
wiring. Specifically, the About menu handler was moved out of atom
initialization and back into `global.ts` startup orchestration.

- **Context / intent**
  - `global-atoms.ts` should own atom construction and registries only.
- `global.ts` should orchestrate app-level startup side effects and
re-export compatibility APIs.

- **What changed**
  - **`global-atoms.ts`**
    - Removed `onMenuItemAbout` registration from `initGlobalAtoms`.
- Removed `modalsModel` import (no longer needed; improves layering).
- Continued to own atom state (`atoms`), atom init (`initGlobalAtoms`),
and atom registries/caches.
  - **`global.ts`**
- Added `onMenuItemAbout` registration to `initGlobal` immediately after
`initGlobalAtoms(initOpts)`.
    - Keeps UI-level event wiring with global startup orchestration.

- **Boundary after this change**
  - `global-atoms.ts`: atom ownership + atom graph init.
- `global.ts`: runtime orchestration + menu/event side effects +
compatibility re-exports.

```ts
// global.ts
function initGlobal(initOpts: GlobalInitOptions) {
    globalEnvironment = initOpts.environment;
    globalPrimaryTabStartup = initOpts.primaryTabStartup ?? false;
    setPlatform(initOpts.platform);
    initGlobalAtoms(initOpts);
    try {
        getApi().onMenuItemAbout(() => {
            modalsModel.pushModal("AboutModal");
        });
    } catch (e) {
        console.log("failed to initialize onMenuItemAbout handler", e);
    }
}
```

<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
2026-02-23 16:30:20 -08:00
Mike Sawka
386faf7454
fix multi-input to use onData instead of onKey (#2922) 2026-02-23 16:05:01 -08:00
Mike Sawka
dc4acc77d5
tooltips for tab bar buttons (AI and workspace switcher) (#2914) 2026-02-23 15:39:10 -08:00
Copilot
705563ebe0
Refactor ContextMenuModel to lazy singleton via getInstance() and update all call sites (#2920)
`contextmenu.ts` eagerly instantiated its model at import time, which
triggered constructor side effects (`getApi()`) too early. This change
aligns ContextMenuModel with the `client-model.ts` singleton pattern so
initialization is explicit and deferred.

- **Singleton pattern migration (`frontend/app/store/contextmenu.ts`)**
- Replaced eager module-level instance creation with a class-based
singleton:
    - `private constructor()`
    - `static getInstance()`
- Removed `ContextMenuModelType` export and now export
`ContextMenuModel` class only.
- Constructor side effects (`onContextMenuClick` wiring) now run only on
first `getInstance()` call.

- **Usage updates (all context menu entry points)**
  - Updated all direct static-style calls:
    - `ContextMenuModel.showContextMenu(...)`
    - ⟶ `ContextMenuModel.getInstance().showContextMenu(...)`
- Applied across app/builder/preview/term/tab/widget context-menu
handlers to keep behavior consistent while deferring initialization.

- **Focused regression test**
  - Added `frontend/app/store/contextmenu.test.ts` to verify:
    - importing `contextmenu` does not initialize the API binding;
    - first `getInstance()` initializes once;
    - repeated `getInstance()` returns the same singleton instance.

```ts
// before
ContextMenuModel.showContextMenu(menu, e);

// after
ContextMenuModel.getInstance().showContextMenu(menu, e);
```

<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
2026-02-23 13:42:02 -08:00
Mike Sawka
a233dcd838
try to fix error with go mod download in copilot setup steps (#2921) 2026-02-23 13:40:49 -08:00
Mike Sawka
9abd590176
UI only preview server (+ deployments) (#2919)
adds a new "preview server" for UI testing. hooking up to cloudflare
pages deployments. for now, just a test "about modal" component. will
add more later.
2026-02-23 12:48:28 -08:00
Copilot
195277de45
Generate WaveEvent as a typed discriminated union with explicit null payloads for no-data events (#2899)
This updates WaveEvent typing to be event-aware instead of `data?: any`,
while keeping safe fallback behavior for unmapped events. It also
codifies known no-payload events as `null` payloads and documents event
payload expectations alongside the Go event constants.

- **Event registry + payload documentation (Go)**
- Added `AllEvents` in `pkg/wps/wpstypes.go` as the canonical list of
Wave event names.
  - Added/updated inline payload annotations on `Event_*` constants.
- Marked confirmed no-payload events with `// type: none` (e.g.
`route:up`, `route:down`, `workspace:update`, `waveapp:appgoupdated`).

- **Dedicated WaveEvent TS generation path**
- Added `pkg/tsgen/tsgenevent.go` with `event -> reflect.Type` metadata
(`WaveEventDataTypes`).
  - Supports three cases:
    - mapped concrete type → strong TS payload type
    - mapped `nil` → `data?: null` (explicit no-data contract)
    - unmapped event → `data?: any` (non-breaking fallback)

- **Custom WaveEvent output and default suppression**
- Suppressed default struct-based `WaveEvent` emission in
`gotypes.d.ts`.
  - Added generated `frontend/types/waveevent.d.ts` containing:
    - `WaveEventName` string-literal union from `AllEvents`
    - discriminated `WaveEvent` union keyed by `event`.

- **Generator wiring + focused coverage**
- Hooked custom event generation into
`cmd/generatets/main-generatets.go`.
  - Added `pkg/tsgen/tsgenevent_test.go` assertions for:
    - typed mapped events
    - explicit `null` for known no-data events
    - `any` fallback for unmapped events.

```ts
type WaveEvent = {
  event: WaveEventName;
  scopes?: string[];
  sender?: string;
  persist?: number;
  data?: any;
} & (
  { event: "block:jobstatus"; data?: BlockJobStatusData } |
  { event: "route:up"; data?: null } |
  { event: "workspace:update"; data?: null } |
  { event: "some:future:event"; data?: any } // fallback if unmapped
);
```

<!-- START COPILOT CODING AGENT TIPS -->
---

💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: sawka <2722291+sawka@users.noreply.github.com>
Co-authored-by: sawka <mike@commandline.dev>
2026-02-20 17:04:03 -08:00
Mike Sawka
f3b1c16882
improve the schema for widgets.json (#2913) 2026-02-20 16:59:38 -08:00
dependabot[bot]
9400d9467d
Bump ajv from 6.12.6 to 6.14.0 (#2910)
Bumps [ajv](https://github.com/ajv-validator/ajv) from 6.12.6 to 6.14.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e3af0a723b"><code>e3af0a7</code></a>
6.14.0</li>
<li><a
href="b552ed6619"><code>b552ed6</code></a>
add regExp option to address $data exploit via a regular expression
(CVE-2025...</li>
<li><a
href="72f2286658"><code>72f2286</code></a>
docs: update v7 info</li>
<li><a
href="231e52b3bc"><code>231e52b</code></a>
Merge pull request <a
href="https://redirect.github.com/ajv-validator/ajv/issues/1320">#1320</a>
from philsturgeon/patch-1</li>
<li><a
href="d3475fc204"><code>d3475fc</code></a>
Add spectral, an AJV util from a sponsor</li>
<li><a
href="413afe01f5"><code>413afe0</code></a>
docs: v7.0.0-beta.3</li>
<li><a
href="11e997bda2"><code>11e997b</code></a>
update readme for v7</li>
<li>See full diff in <a
href="https://github.com/ajv-validator/ajv/compare/v6.12.6...v6.14.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ajv&package-manager=npm_and_yarn&previous-version=6.12.6&new-version=6.14.0)](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/wavetermdev/waveterm/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 15:27:32 -08:00
Mike Sawka
b774bab97f
add focusallowscursor for waveai panel as well (#2911) 2026-02-20 15:26:36 -08:00
dependabot[bot]
f49449cff1
Bump google.golang.org/api from 0.266.0 to 0.267.0 (#2903)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.266.0 to 0.267.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.267.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.266.0...v0.267.0">0.267.0</a>
(2026-02-17)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3492">#3492</a>)
(<a
href="62e5a8eeb3">62e5a8e</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3494">#3494</a>)
(<a
href="832516f0e0">832516f</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3495">#3495</a>)
(<a
href="1415f4caac">1415f4c</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3496">#3496</a>)
(<a
href="633a3a27b8">633a3a2</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3497">#3497</a>)
(<a
href="6463f72e85">6463f72</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3499">#3499</a>)
(<a
href="ab20d56700">ab20d56</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3500">#3500</a>)
(<a
href="8a6df0640a">8a6df06</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.266.0...v0.267.0">0.267.0</a>
(2026-02-17)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3492">#3492</a>)
(<a
href="62e5a8eeb3">62e5a8e</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3494">#3494</a>)
(<a
href="832516f0e0">832516f</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3495">#3495</a>)
(<a
href="1415f4caac">1415f4c</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3496">#3496</a>)
(<a
href="633a3a27b8">633a3a2</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3497">#3497</a>)
(<a
href="6463f72e85">6463f72</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3499">#3499</a>)
(<a
href="ab20d56700">ab20d56</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3500">#3500</a>)
(<a
href="8a6df0640a">8a6df06</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="41fd8476e2"><code>41fd847</code></a>
chore(main): release 0.267.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3493">#3493</a>)</li>
<li><a
href="8a6df0640a"><code>8a6df06</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3500">#3500</a>)</li>
<li><a
href="ab20d56700"><code>ab20d56</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3499">#3499</a>)</li>
<li><a
href="6463f72e85"><code>6463f72</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3497">#3497</a>)</li>
<li><a
href="633a3a27b8"><code>633a3a2</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3496">#3496</a>)</li>
<li><a
href="1415f4caac"><code>1415f4c</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3495">#3495</a>)</li>
<li><a
href="832516f0e0"><code>832516f</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3494">#3494</a>)</li>
<li><a
href="62e5a8eeb3"><code>62e5a8e</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3492">#3492</a>)</li>
<li>See full diff in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.266.0...v0.267.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.266.0&new-version=0.267.0)](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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 15:22:15 -08:00
John Feustel
b9067fb60b
Add app:focusfollowscursor setting (off/on/term) for hover-based block focus (#2908)
This PR adds a new app setting to control whether block focus follows
cursor movement:

  - `app:focusfollowscursor: "off" | "on" | "term"`
  - Default is `"off"` (no behavior change unless enabled)

  ## What changed

  - Added hover-focus behavior on block pointer enter.
  - Added guardrails so hover focus does not trigger when:
  - touch input is used
  - pointer buttons are pressed (drag/select scenarios)
  - modal is open
  - pointer events are disabled
  - block is resizing
  - Added config key plumbing across settings types and schema:
  - `pkg/wconfig/settingsconfig.go`
  - `pkg/wconfig/metaconsts.go`
  - `schema/settings.json`
- `pkg/wconfig/defaultconfig/settings.json` ->
`"app:focusfollowscursor": "off"`
  - Added docs for the new key and default example:
  - `docs/docs/config.mdx`

  ## Behavior

  - `"off"`: do not focus on cursor movement
  - `"on"`: focus follows cursor for all block types
  - `"term"`: focus follows cursor only for terminal blocks
2026-02-20 14:47:26 -08:00
dependabot[bot]
cc0f5c7e11
Bump golang.org/x/mod from 0.32.0 to 0.33.0 (#2905)
Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.32.0 to
0.33.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="27761a2ad8"><code>27761a2</code></a>
go.mod: update golang.org/x dependencies</li>
<li>See full diff in <a
href="https://github.com/golang/mod/compare/v0.32.0...v0.33.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/mod&package-manager=go_modules&previous-version=0.32.0&new-version=0.33.0)](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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 14:12:08 -08:00