Open
Conversation
always remove from reqmap in Finalize even if done flag is already set.
Removes the embedded Docusaurus build from the application. The help view now always loads from https://docs.waveterm.dev/ instead of serving a locally bundled copy. This eliminates package size constraints on documentation content (e.g., videos) and removes unnecessary build/packaging overhead. **Backend changes:** - Deleted `pkg/docsite` package entirely - Removed docsite handler from `pkg/web/web.go` - Simplified `emain/docsite.ts` to return constant URL instead of probing for embedded docs **Frontend changes:** - Removed embedded URL translation logic from `helpview.tsx` - Homepage URL now uses constant instead of IPC call **Build configuration:** - Removed `docsite:build:embedded` task and all references - Removed `dist/docsite/**/*` from electron-builder asarUnpack - Removed `build-embedded` script from docs package.json Net result: -141 lines, +9 lines across 8 files. <!-- START COPILOT CODING AGENT SUFFIX --> <details> <summary>Original prompt</summary> > right now we build a docusaurus project to run both the online docs at docs.waveterm.dev AND to embed into the application. but this limits what we can show in the docs (especially large things like videos etc.) > > the internal docs already fall back to the website when it cannot find the embedded docs. > > i'd like to update the build and packaging etc to no longer build the embedded doc site. i'd also like to have the "help" view always render the live doc site at https://docs.waveterm.dev. </details> <!-- 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>
adds a new secret store protected by electron's safeStorage API. currently just hooked up to the CLI via a new wsh command: `wsh secret`. will be used to power secrets in tsunami later (and for config + connections)
…2529) Bumps [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) from 1.89.1 to 1.90.0. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/f4b68139280ee1873399b27d581ba128834c71c4"><code>f4b6813</code></a> Release 2025-11-05</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/2d7b311712b2b340539374cfc37746105a24dfcc"><code>2d7b311</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/9e3111912844ec2dbc08e073867cdc81fc0524a7"><code>9e31119</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/aacca0a210fc819cfdbe4dbaea4e28fc66788a55"><code>aacca0a</code></a> Release 2025-11-04</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/f2f7085b91ff4a1f6bc7ec01b5c40898394bdab1"><code>f2f7085</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/98ac357edf60e930fc6ac1790b457ce63100406b"><code>98ac357</code></a> Update endpoints model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/545573ffc380220953b0623eaf8ff033433a4d32"><code>545573f</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/0c4b1ae2386e80ece230041b4c19322880f5135a"><code>0c4b1ae</code></a> upgrade to smithy-go v1.23.2 to track allocation improvements (<a href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3222">#3222</a>)</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/bae1d689b9cdba0639a0c9e04f90041168a83ef1"><code>bae1d68</code></a> Release 2025-11-03</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/67d7b9cb0251a852fa0b6a012e7317b353e54c6e"><code>67d7b9c</code></a> Regenerated Clients</li> <li>Additional commits viewable in <a href="https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.89.1...service/s3/v1.90.0">compare view</a></li> </ul> </details> <br /> [](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 merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@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>
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.254.0 to 0.255.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.255.0</h2> <h2><a href="https://github.com/googleapis/google-api-go-client/compare/v0.254.0...v0.255.0">0.255.0</a> (2025-11-04)</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/3357">#3357</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/430bc4639d14b3c7969981603891163421883695">430bc46</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3359">#3359</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/0bcacee13f1bd305cf1e16bfb714fbe998b7fcb1">0bcacee</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3360">#3360</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/c9cdcadebd1ac3e2de3c0146b3a1d6eb0956c3fc">c9cdcad</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3361">#3361</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/acdddcdc891d41f9ac22bcf031d53f9f17810637">acdddcd</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3362">#3362</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/040f8aaadedfcf6fb449937e734f3c57a3cfedd4">040f8aa</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3364">#3364</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/8f13004c104b3620144017f36886ef3818878dad">8f13004</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3365">#3365</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/4ea8be06ce628f4af4949c6954e1342c0db8e76b">4ea8be0</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.254.0...v0.255.0">0.255.0</a> (2025-11-04)</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/3357">#3357</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/430bc4639d14b3c7969981603891163421883695">430bc46</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3359">#3359</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/0bcacee13f1bd305cf1e16bfb714fbe998b7fcb1">0bcacee</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3360">#3360</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/c9cdcadebd1ac3e2de3c0146b3a1d6eb0956c3fc">c9cdcad</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3361">#3361</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/acdddcdc891d41f9ac22bcf031d53f9f17810637">acdddcd</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3362">#3362</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/040f8aaadedfcf6fb449937e734f3c57a3cfedd4">040f8aa</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3364">#3364</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/8f13004c104b3620144017f36886ef3818878dad">8f13004</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3365">#3365</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/4ea8be06ce628f4af4949c6954e1342c0db8e76b">4ea8be0</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/google-api-go-client/commit/d7491ba2192f77c16f3a76c381ace9ff568a5f46"><code>d7491ba</code></a> chore(main): release 0.255.0 (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3358">#3358</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/4ea8be06ce628f4af4949c6954e1342c0db8e76b"><code>4ea8be0</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3365">#3365</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/5d5029ab3bcc8e24c1f47e73335127732c8da81b"><code>5d5029a</code></a> chore(all): update all to ab9386a (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3363">#3363</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/8f13004c104b3620144017f36886ef3818878dad"><code>8f13004</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3364">#3364</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/040f8aaadedfcf6fb449937e734f3c57a3cfedd4"><code>040f8aa</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3362">#3362</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/acdddcdc891d41f9ac22bcf031d53f9f17810637"><code>acdddcd</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3361">#3361</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/c9cdcadebd1ac3e2de3c0146b3a1d6eb0956c3fc"><code>c9cdcad</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3360">#3360</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/0bcacee13f1bd305cf1e16bfb714fbe998b7fcb1"><code>0bcacee</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3359">#3359</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/430bc4639d14b3c7969981603891163421883695"><code>430bc46</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3357">#3357</a>)</li> <li>See full diff in <a href="https://github.com/googleapis/google-api-go-client/compare/v0.254.0...v0.255.0">compare view</a></li> </ul> </details> <br /> [](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 merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@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>
## Summary This PR includes three terminal input improvements that enhance the experience when using interactive CLI tools and IME input: 1. **Shift+Enter newline support**: Enable Shift+Enter to insert newlines by default 2. **Image paste support**: Allow pasting images by saving them as temporary files and pasting the file path 3. **IME duplicate input fix**: Fix duplicate text when switching input methods during composition ## Motivation ### Shift+Enter for newlines Currently, pressing Shift+Enter in the terminal behaves the same as Enter, making it difficult to input multi-line commands or text in interactive CLI tools. This change enables Shift+Enter to insert newlines by default, matching common terminal emulator behavior. ### Image paste support Interactive AI tools like Claude Code support receiving images through file paths, but Wave Terminal currently doesn't support pasting images. This change implements image paste functionality similar to iTerm2's behavior: when an image is pasted, it's saved to a temporary file and the path is pasted into the terminal. ### IME duplicate input fix When using Chinese/Japanese/Korean IME in the terminal, switching input methods with Capslock during composition causes the composed text to be sent twice, resulting in duplicate output (e.g., "你好" becomes "你好你好"). This issue severely impacts users who frequently switch between languages. ## Changes ### Shift+Enter newline (`frontend/app/view/term/term-model.ts`) - Change default `shiftenternewline` config from `false` to `true` - Send standard newline character (`\n`) instead of escape sequence (`\^[\n`) ### Image paste (`frontend/app/view/term/term-model.ts`, `frontend/app/view/term/termwrap.ts`) - Add `handlePaste()` method to intercept Cmd+Shift+V paste events - Add `handleImagePasteBlob()` to save images to `/tmp` and paste the file path - Detect image data in clipboard using both `ClipboardEvent.clipboardData` and Clipboard API - Support both screenshot paste and file copy scenarios - Add 5MB size limit for pasted images - Temporary files are created with format: `waveterm_paste_[timestamp].[ext]` ### IME duplicate input fix (`frontend/app/view/term/termwrap.ts`, `frontend/app/view/term/term-model.ts`) **IME Composition Handling:** - Track composition state (isComposing, composingData, etc.) in TermWrap - Register compositionstart/update/end event listeners on xterm.js textarea - Block all data sends during composition, only allow after compositionend - Prevents xterm.js from sending intermediate data during compositionupdate phase **Deduplication Logic:** - Implement 50ms time window deduplication for both IME and paste operations - Track first send after composition, block duplicate sends from Capslock switching - Ensure Ctrl+Space and Fn switching work correctly (single send only) **Edge Case Handling:** - Add blur event handler to reset composition state on focus loss - Add Escape key handling to cancel composition in progress ## Testing ### Shift+Enter 1. Open a terminal in Wave 2. Press Shift+Enter 3. Verify that a newline is inserted instead of executing the command ### Image paste 1. Take a screenshot and copy it to clipboard (or copy an image file in Finder) 2. In a terminal running Claude Code, paste the image (Cmd+V or Cmd+Shift+V) 3. Verify that the image path appears and Claude Code recognizes it ### IME Input Testing **IME Input:** - [x] macOS Zhuyin IME + Capslock switching - no duplicate output ✅ - [x] macOS Zhuyin IME + Ctrl+Space switching - normal single input ✅ - [x] macOS Zhuyin IME + Fn switching - normal single input ✅ **Regression Testing:** - [x] English keyboard input - normal operation ✅ - [x] Shift+Enter multiline input - works correctly ✅ - [x] Text paste (Cmd+Shift+V) - no duplicates ✅ - [x] Image paste - works correctly ✅ - [x] Basic command execution (ls, echo, etc.) - normal ✅ - [x] Cmd+K clear terminal - works correctly ✅ - [x] Copy selected text (Cmd+Shift+C) - works correctly ✅ ## Demo https://github.com/user-attachments/assets/8341cdf9-6c57-413e-b940-89e50cc79ff0 https://github.com/user-attachments/assets/d3a6e72a-f488-45c1-ab58-88391639455a https://github.com/user-attachments/assets/ac178abd-caf3-40bf-9ef7-7cc0567a32c3 All features have been tested successfully on macOS with Claude Code in Wave Terminal.
Handle both types of paste data. Write utility functions to normalize
paste events to {text; image}[]. Fix duplication issue (call
preventDefault() early). Handle multiple image pasting (by adding a
slight delay). Convert Ctrl:Shift:v to use a *native paste* which allows
capturing of images!
Bumps the dev-dependencies-patch group with 6 updates: | Package | From | To | | --- | --- | --- | | [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.1.16` | `4.1.17` | | [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc) | `4.2.0` | `4.2.1` | | [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.1.16` | `4.1.17` | | [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.46.2` | `8.46.3` | | [vite-plugin-image-optimizer](https://github.com/FatehAK/vite-plugin-image-optimizer) | `2.0.2` | `2.0.3` | | [@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli) | `4.1.16` | `4.1.17` | Updates `@tailwindcss/vite` from 4.1.16 to 4.1.17 <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.1.17</h2> <h3>Fixed</h3> <ul> <li>Substitute <code>@variant</code> inside legacy JS APIs (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19263">#19263</a>)</li> <li>Prevent occasional crash on Windows when loaded into a worker thread (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19242">#19242</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.1.17] - 2025-11-06</h2> <h3>Fixed</h3> <ul> <li>Substitute <code>@variant</code> inside legacy JS APIs (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19263">#19263</a>)</li> <li>Prevent occasional crash on Windows when loaded into a worker thread (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19242">#19242</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/e9c9c4f79db00a7a1dc7a3e2a13ced3b19f55555"><code>e9c9c4f</code></a> Release v4.1.17 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite/issues/19272">#19272</a>)</li> <li>See full diff in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.1.17/packages/@tailwindcss-vite">compare view</a></li> </ul> </details> <br /> Updates `@vitejs/plugin-react-swc` from 4.2.0 to 4.2.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vitejs/vite-plugin-react/releases"><code>@vitejs/plugin-react-swc</code>'s releases</a>.</em></p> <blockquote> <h2>plugin-react@4.2.1</h2> <p>Remove generic parameter on <code>Plugin</code> to avoid type error with Rollup 4/Vite 5 and <code>skipLibCheck: false</code>.</p> <p>I expect very few people to currently use this feature, but if you are extending the React plugin via <code>api</code> object, you can get back the typing of the hook by importing <code>ViteReactPluginApi</code>:</p> <pre lang="ts"><code>import type { Plugin } from 'vite' import type { ViteReactPluginApi } from '@vitejs/plugin-react' <p>export const somePlugin: Plugin = {<br /> name: 'some-plugin',<br /> api: {<br /> reactBabel: (babelConfig) => {<br /> babelConfig.plugins.push('some-babel-plugin')<br /> },<br /> } satisfies ViteReactPluginApi,<br /> }<br /> </code></pre></p> <h2>plugin-react-swc@4.2.1</h2> <h3>Fix <code>@vitejs/plugin-react-swc/preamble</code> on build (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/962">#962</a>)</h3> </blockquote> </details> <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.1 (2025-11-05)</h2> <h3>Fix <code>@vitejs/plugin-react-swc/preamble</code> on build (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/962">#962</a>)</h3> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/vitejs/vite-plugin-react/commits/v4.2.1/packages/plugin-react-swc">compare view</a></li> </ul> </details> <br /> Updates `tailwindcss` from 4.1.16 to 4.1.17 <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.1.17</h2> <h3>Fixed</h3> <ul> <li>Substitute <code>@variant</code> inside legacy JS APIs (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19263">#19263</a>)</li> <li>Prevent occasional crash on Windows when loaded into a worker thread (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19242">#19242</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.1.17] - 2025-11-06</h2> <h3>Fixed</h3> <ul> <li>Substitute <code>@variant</code> inside legacy JS APIs (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19263">#19263</a>)</li> <li>Prevent occasional crash on Windows when loaded into a worker thread (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19242">#19242</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/e9c9c4f79db00a7a1dc7a3e2a13ced3b19f55555"><code>e9c9c4f</code></a> Release v4.1.17 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19272">#19272</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/dc6a3ce349a082e6c437288e52d0eea9a9ea4ff2"><code>dc6a3ce</code></a> Substitute <code>@variant</code> inside utilities (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19263">#19263</a>)</li> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/e71e70eda9c0372872b9c8bf7d70d35c22004bd4"><code>e71e70e</code></a> Update magic-string 0.30.19 → 0.30.21 (minor) (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss/issues/19238">#19238</a>)</li> <li>See full diff in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.1.17/packages/tailwindcss">compare view</a></li> </ul> </details> <br /> Updates `typescript-eslint` from 8.46.2 to 8.46.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases">typescript-eslint's releases</a>.</em></p> <blockquote> <h2>v8.46.3</h2> <h2>8.46.3 (2025-11-03)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-misused-promises] expand union type to retrieve target property (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11706">#11706</a>)</li> <li><strong>eslint-plugin:</strong> [no-duplicate-enum-values] support signed numbers (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11722">#11722</a>, <a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11723">#11723</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Evgeny Stepanovych <a href="https://github.com/undsoft"><code>@undsoft</code></a></li> <li>tao</li> </ul> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md">typescript-eslint's changelog</a>.</em></p> <blockquote> <h2>8.46.3 (2025-11-03)</h2> <p>This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.</p> <p>You can read about our <a href="https://typescript-eslint.io/users/versioning">versioning strategy</a> and <a href="https://typescript-eslint.io/users/releases">releases</a> on our website.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/d9f3497dfb72e90fd7dc977c77d41b0eb9df4909"><code>d9f3497</code></a> chore(release): publish 8.46.3</li> <li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.3/packages/typescript-eslint">compare view</a></li> </ul> </details> <br /> Updates `vite-plugin-image-optimizer` from 2.0.2 to 2.0.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/FatehAK/vite-plugin-image-optimizer/releases">vite-plugin-image-optimizer's releases</a>.</em></p> <blockquote> <h2>✨ v2.0.3</h2> <ul> <li>fix: allow regex to match a folder for exclude and include options (<a href="https://redirect.github.com/FatehAK/vite-plugin-image-optimizer/issues/55">#55</a>) (e68c9b4)</li> <li>Renovate: lockfile and non-major updates <ul> <li>Multiple Lock file maintenance and non-major dependency updates across versions for stability and security.</li> <li><code>@typescript-eslint/parser</code> - Upgraded sequentially from ^8.35.1 → ^8.46.2</li> <li>eslint - Incremental updates from ^9.30.1 → ^9.38.0</li> <li>vite - Updated to v6.4.1 (security patch)</li> <li><code>@types/node</code> - Upgraded to ^24.3.0</li> <li>pnpm - Updated to v10.15.0</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/FatehAK/vite-plugin-image-optimizer/commit/a738e4c4bd17e3cb5e0d3102ddd4f4fee775d2db"><code>a738e4c</code></a> chore: Release v2.0.3</li> <li><a href="https://github.com/FatehAK/vite-plugin-image-optimizer/commit/e68c9b40bebb55321cab338a0e4ac7b41472df46"><code>e68c9b4</code></a> fix: allow regex to match a folder for exclude and include options (<a href="https://redirect.github.com/FatehAK/vite-plugin-image-optimizer/issues/55">#55</a>)</li> <li><a href="https://github.com/FatehAK/vite-plugin-image-optimizer/commit/07aa35e5808da6489464423607bd7ac481852815"><code>07aa35e</code></a> chore(deps): Lock file maintenance</li> <li><a href="https://github.com/FatehAK/vite-plugin-image-optimizer/commit/13e2b45b9292a3d599f6e402b608d9f7cac6c1f4"><code>13e2b45</code></a> chore(deps): Update non-major dependencies</li> <li><a href="https://github.com/FatehAK/vite-plugin-image-optimizer/commit/4302c3a8f9e3ba9cadc266c9d13cb0b427a4b96e"><code>4302c3a</code></a> chore(deps): Update dependency <code>@typescript-eslint/parser</code> to ^8.46.2</li> <li><a href="https://github.com/FatehAK/vite-plugin-image-optimizer/commit/a72dcfe32e5ac7a28fc1f13f9dabbfc370f34f3a"><code>a72dcfe</code></a> chore(deps): Update dependency vite to v6.4.1 [SECURITY]</li> <li><a href="https://github.com/FatehAK/vite-plugin-image-optimizer/commit/0eebdadd601af1d27a533b65320527415969ac29"><code>0eebdad</code></a> chore(deps): Lock file maintenance</li> <li><a href="https://github.com/FatehAK/vite-plugin-image-optimizer/commit/b0c50dd93f73208fcf4b9e01a62f6f2193894d46"><code>b0c50dd</code></a> chore(deps): Update non-major dependencies</li> <li><a href="https://github.com/FatehAK/vite-plugin-image-optimizer/commit/00d6afa6e761e59529b2939266c7ea3304b015f6"><code>00d6afa</code></a> chore(deps): Update eslint monorepo to ^9.38.0</li> <li><a href="https://github.com/FatehAK/vite-plugin-image-optimizer/commit/08a481ab8b61246fd6b146deec53ed6f4ed8ddde"><code>08a481a</code></a> chore(deps): Update dependency <code>@typescript-eslint/parser</code> to ^8.46.1</li> <li>Additional commits viewable in <a href="https://github.com/FatehAK/vite-plugin-image-optimizer/compare/v2.0.2...v2.0.3">compare view</a></li> </ul> </details> <br /> Updates `@tailwindcss/cli` from 4.1.16 to 4.1.17 <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.1.17</h2> <h3>Fixed</h3> <ul> <li>Substitute <code>@variant</code> inside legacy JS APIs (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19263">#19263</a>)</li> <li>Prevent occasional crash on Windows when loaded into a worker thread (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19242">#19242</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.1.17] - 2025-11-06</h2> <h3>Fixed</h3> <ul> <li>Substitute <code>@variant</code> inside legacy JS APIs (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19263">#19263</a>)</li> <li>Prevent occasional crash on Windows when loaded into a worker thread (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19242">#19242</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tailwindlabs/tailwindcss/commit/e9c9c4f79db00a7a1dc7a3e2a13ced3b19f55555"><code>e9c9c4f</code></a> Release v4.1.17 (<a href="https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli/issues/19272">#19272</a>)</li> <li>See full diff in <a href="https://github.com/tailwindlabs/tailwindcss/commits/v4.1.17/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 merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@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>
Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.31.15 to 1.31.17. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/aacca0a210fc819cfdbe4dbaea4e28fc66788a55"><code>aacca0a</code></a> Release 2025-11-04</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/f2f7085b91ff4a1f6bc7ec01b5c40898394bdab1"><code>f2f7085</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/98ac357edf60e930fc6ac1790b457ce63100406b"><code>98ac357</code></a> Update endpoints model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/545573ffc380220953b0623eaf8ff033433a4d32"><code>545573f</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/0c4b1ae2386e80ece230041b4c19322880f5135a"><code>0c4b1ae</code></a> upgrade to smithy-go v1.23.2 to track allocation improvements (<a href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3222">#3222</a>)</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/bae1d689b9cdba0639a0c9e04f90041168a83ef1"><code>bae1d68</code></a> Release 2025-11-03</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/67d7b9cb0251a852fa0b6a012e7317b353e54c6e"><code>67d7b9c</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/74be9b92bddae4efbb8a7f6ac7215e7e3c217ce5"><code>74be9b9</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/3242971cacca6494b8391127bc054b5238a20262"><code>3242971</code></a> Release 2025-10-31</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/2db47dca340ab445f0a7e3a690422b113dd054ce"><code>2db47dc</code></a> Regenerated Clients</li> <li>Additional commits viewable in <a href="https://github.com/aws/aws-sdk-go-v2/compare/config/v1.31.15...config/v1.31.17">compare view</a></li> </ul> </details> <br /> [](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 merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@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>
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.265.0 to 0.266.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.266.0</h2> <h2><a href="https://github.com/googleapis/google-api-go-client/compare/v0.265.0...v0.266.0">0.266.0</a> (2026-02-10)</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/3483">#3483</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/a3a61ce2214c8d18bb640c724fae2cda8cb77b58">a3a61ce</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3485">#3485</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/200d1409ecc830131f0b5b92fd59708fef24dd8e">200d140</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3486">#3486</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/870909e466b1bf8172dfe9bd5c096b1df45b0491">870909e</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3487">#3487</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/6018e80ff5cadadb81c7b7be9f5de01b4b4c2132">6018e80</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3489">#3489</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/402353be95579bccda6b6623e67e9f028163905b">402353b</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3490">#3490</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/49c652fb9c5e08c9d1a2587f41017b6011dc03da">49c652f</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.265.0...v0.266.0">0.266.0</a> (2026-02-10)</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/3483">#3483</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/a3a61ce2214c8d18bb640c724fae2cda8cb77b58">a3a61ce</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3485">#3485</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/200d1409ecc830131f0b5b92fd59708fef24dd8e">200d140</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3486">#3486</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/870909e466b1bf8172dfe9bd5c096b1df45b0491">870909e</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3487">#3487</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/6018e80ff5cadadb81c7b7be9f5de01b4b4c2132">6018e80</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3489">#3489</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/402353be95579bccda6b6623e67e9f028163905b">402353b</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3490">#3490</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/49c652fb9c5e08c9d1a2587f41017b6011dc03da">49c652f</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/google-api-go-client/commit/26a317d5406788914bd807821ca316e488608573"><code>26a317d</code></a> chore(main): release 0.266.0 (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3484">#3484</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/49c652fb9c5e08c9d1a2587f41017b6011dc03da"><code>49c652f</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3490">#3490</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/b9fd5c2a7ba8cf9682c821eb78f2d862e1a78727"><code>b9fd5c2</code></a> chore(all): update all (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3488">#3488</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/402353be95579bccda6b6623e67e9f028163905b"><code>402353b</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3489">#3489</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/6018e80ff5cadadb81c7b7be9f5de01b4b4c2132"><code>6018e80</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3487">#3487</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/870909e466b1bf8172dfe9bd5c096b1df45b0491"><code>870909e</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3486">#3486</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/200d1409ecc830131f0b5b92fd59708fef24dd8e"><code>200d140</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3485">#3485</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/a3a61ce2214c8d18bb640c724fae2cda8cb77b58"><code>a3a61ce</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3483">#3483</a>)</li> <li>See full diff in <a href="https://github.com/googleapis/google-api-go-client/compare/v0.265.0...v0.266.0">compare view</a></li> </ul> </details> <br /> [](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>
adds https://nano-gpt.com as a provider
- Add tab:confirmclose boolean config option to SettingsType (Go), schema/settings.json, and gotypes.d.ts - Update close-tab IPC handler to use ipcMain.handle (async) and accept confirmClose param - Show a native confirmation dialog via dialog.showMessageBoxSync when confirmClose is true - Update preload.ts to use ipcRenderer.invoke for close-tab, returning Promise<boolean> - Update closeTab type signature in custom.d.ts to return Promise<boolean> - Update tabbar.tsx and keymodel.ts to await closeTab result and only delete layout model on confirmed close - Document tab:confirmclose in docs/docs/config.mdx --------- Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…Widget (#2892) This pull request adds a new command-line feature for exporting terminal scrollback, improves the accuracy of scrollback extraction (especially for wrapped lines), and introduces a "Save Session As..." menu option in the frontend to make exporting session logs more user-friendly. The changes touch both the backend CLI and the frontend, ensuring users can easily capture and save terminal output for processing or archiving.
This refactor moves the counters helpers out of
`frontend/app/store/global.ts` into a dedicated `counters.ts` module,
and updates existing call sites to import from the new location. The
goal is to keep `global.ts` focused on global store/state concerns while
preserving current counters behavior.
- **Module extraction**
- Added `frontend/app/store/counters.ts` containing:
- `counterInc(name, incAmt = 1)`
- `countersClear()`
- `countersPrint()`
- Moved logic unchanged from `global.ts`.
- **Global store cleanup**
- Removed counters state/functions from `frontend/app/store/global.ts`.
- Removed counters exports from `global.ts`’s export surface.
- **Call site updates**
- Updated imports to use `@/store/counters` in:
- `frontend/app/block/block.tsx` (`counterInc`)
- `frontend/wave.ts` (`countersClear`, `countersPrint`)
```ts
// before
import { counterInc } from "@/store/global";
// after
import { counterInc } from "@/store/counters";
```
<!-- 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>
…gets.json` (#2898) This change adds an optional `workspaces` field to widget config entries so widgets can be scoped to specific workspace UUIDs. Widgets with no `workspaces` field (or an empty array) continue to render globally, preserving current `widgets.json` behavior. - **Config model updates** - Added `workspaces []string` to `wconfig.WidgetConfigType` with `json:"workspaces,omitempty"`. - Updated frontend generated type `WidgetConfigType` with `workspaces?: string[]`. - **Sidebar widget filtering** - `frontend/app/workspace/widgets.tsx` now applies workspace-aware filtering when building the sidebar widget list: - include if `workspaces` is missing or empty - include if current `workspace.oid` is present in `workspaces` - otherwise exclude - Existing `defwidget@ai` filtering logic remains intact. - **Isolated filtering logic + coverage** - Added `frontend/app/workspace/widgetfilter.ts` with: - `shouldIncludeWidgetForWorkspace(widget, workspaceId)` - Added focused tests in `frontend/app/workspace/widgetfilter.test.ts` for: - missing/empty `workspaces` - matching/non-matching workspace IDs - missing active workspace ID ```ts function shouldIncludeWidgetForWorkspace(widget: WidgetConfigType, workspaceId?: string): boolean { const workspaces = widget.workspaces; return !Array.isArray(workspaces) || workspaces.length === 0 || (workspaceId != null && workspaces.includes(workspaceId)); } ``` - **Screenshot** - <screenshot>https://github.com/user-attachments/assets/b1727003-793b-4eff-8fc1-00eac9c50b83</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> Co-authored-by: sawka <mike@commandline.dev>
…hortcut from Ctrl+Shift+k to Ctrl+Shift+x (#2909) ## Summary This PR adds vim-style movement aliases for block navigation and updates one conflicting shortcut. ## Changes - Added global keybindings: - `Ctrl+Shift+h` -> move focus left - `Ctrl+Shift+j` -> move focus down - `Ctrl+Shift+k` -> move focus up - `Ctrl+Shift+l` -> move focus right - Kept existing arrow-based movement: - `Ctrl+Shift+ArrowUp/Down/Left/Right` - **Changed launcher shortcut**: - from `Ctrl+Shift+k` - to `Ctrl+Shift+x` ## Why `k` changed to `x` `Ctrl+Shift+k` is now used for vim-style upward movement (`k` = up), so launcher replace needed a new binding. `Ctrl+Shift+x` was chosen to avoid collisions with existing Wave global keybindings. ## Config / behavior notes - `app:disablectrlshiftarrows` now disables both block-navigation sets: - Arrow keys - `h/j/k/l` aliases - It does **not** disable `Ctrl+Shift+x` (launcher replace). ## Docs updated - `docs/docs/keybindings.mdx` - Added `Ctrl+Shift+h/j/k/l` navigation display - Updated launcher replace shortcut to `Ctrl+Shift+x` - `docs/docs/config.mdx` - Clarified `app:disablectrlshiftarrows` scope to include `Arrow` + `h/j/k/l`
Bumps [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) from 1.14.33 to 1.14.34. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/mattn/go-sqlite3/commit/208733130eafb38bd1f570eb7172267a3e64843d"><code>2087331</code></a> add script to create pull-request</li> <li><a href="https://github.com/mattn/go-sqlite3/commit/a5108832c79b3bd3e3c3c0463706dcc8dd8d3030"><code>a510883</code></a> Upgrade SQLite to version 3051002</li> <li><a href="https://github.com/mattn/go-sqlite3/commit/dce6b34a8948550b00752d5f13071acd6280786f"><code>dce6b34</code></a> Add percentile extension</li> <li>See full diff in <a href="https://github.com/mattn/go-sqlite3/compare/v1.14.33...v1.14.34">compare view</a></li> </ul> </details> <br /> [](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>
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="https://github.com/golang/mod/commit/27761a2ad800eabb86324226bb5e39adb07759da"><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 /> [](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>
…k 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
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="https://github.com/googleapis/google-api-go-client/commit/62e5a8eeb37dc6d8b31b104bdb6f100369d69ff2">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="https://github.com/googleapis/google-api-go-client/commit/832516f0e0c6fe7da7b12c74cdc4ee4309349421">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="https://github.com/googleapis/google-api-go-client/commit/1415f4caacd5d60250c33694bb7722b6794c7958">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="https://github.com/googleapis/google-api-go-client/commit/633a3a27b83ac163a7ca7adcc2fb548af9622c38">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="https://github.com/googleapis/google-api-go-client/commit/6463f72e8521ee717534a28d6b8d764d2ce2661e">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="https://github.com/googleapis/google-api-go-client/commit/ab20d567003131669d657195cc28783c35186cef">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="https://github.com/googleapis/google-api-go-client/commit/8a6df0640a2f7c9f1452848ad0d3d251a92402ba">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="https://github.com/googleapis/google-api-go-client/commit/62e5a8eeb37dc6d8b31b104bdb6f100369d69ff2">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="https://github.com/googleapis/google-api-go-client/commit/832516f0e0c6fe7da7b12c74cdc4ee4309349421">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="https://github.com/googleapis/google-api-go-client/commit/1415f4caacd5d60250c33694bb7722b6794c7958">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="https://github.com/googleapis/google-api-go-client/commit/633a3a27b83ac163a7ca7adcc2fb548af9622c38">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="https://github.com/googleapis/google-api-go-client/commit/6463f72e8521ee717534a28d6b8d764d2ce2661e">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="https://github.com/googleapis/google-api-go-client/commit/ab20d567003131669d657195cc28783c35186cef">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="https://github.com/googleapis/google-api-go-client/commit/8a6df0640a2f7c9f1452848ad0d3d251a92402ba">8a6df06</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/google-api-go-client/commit/41fd8476e26277c470b167a481f57d300de27f8b"><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="https://github.com/googleapis/google-api-go-client/commit/8a6df0640a2f7c9f1452848ad0d3d251a92402ba"><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="https://github.com/googleapis/google-api-go-client/commit/ab20d567003131669d657195cc28783c35186cef"><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="https://github.com/googleapis/google-api-go-client/commit/6463f72e8521ee717534a28d6b8d764d2ce2661e"><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="https://github.com/googleapis/google-api-go-client/commit/633a3a27b83ac163a7ca7adcc2fb548af9622c38"><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="https://github.com/googleapis/google-api-go-client/commit/1415f4caacd5d60250c33694bb7722b6794c7958"><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="https://github.com/googleapis/google-api-go-client/commit/832516f0e0c6fe7da7b12c74cdc4ee4309349421"><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="https://github.com/googleapis/google-api-go-client/commit/62e5a8eeb37dc6d8b31b104bdb6f100369d69ff2"><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 /> [](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>
Bumps [ajv](https://github.com/ajv-validator/ajv) from 6.12.6 to 6.14.0. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ajv-validator/ajv/commit/e3af0a723b4b7ad86eff43be355c706d31e0e915"><code>e3af0a7</code></a> 6.14.0</li> <li><a href="https://github.com/ajv-validator/ajv/commit/b552ed66191eb338498df3196065c777e3bb71f2"><code>b552ed6</code></a> add regExp option to address $data exploit via a regular expression (CVE-2025...</li> <li><a href="https://github.com/ajv-validator/ajv/commit/72f228665859eed5e2be3a66f8c4a7aff6b34dcf"><code>72f2286</code></a> docs: update v7 info</li> <li><a href="https://github.com/ajv-validator/ajv/commit/231e52b3bca62559202b95e5fb5cee02145b226a"><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="https://github.com/ajv-validator/ajv/commit/d3475fc20416c33fe030c8aa3b09fa411f325bbd"><code>d3475fc</code></a> Add spectral, an AJV util from a sponsor</li> <li><a href="https://github.com/ajv-validator/ajv/commit/413afe01f518ea74d1740a7cb211df787c585544"><code>413afe0</code></a> docs: v7.0.0-beta.3</li> <li><a href="https://github.com/ajv-validator/ajv/commit/11e997bda2f3eecb445c1e5a07d96ef7e81c5f5d"><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 /> [](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>
…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>
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.
…pdate 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>
…bout-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>
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.7 to 7.5.9. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/isaacs/node-tar/commit/1f0c2c9006b10199cf2686f8ef43e79a1773e1aa"><code>1f0c2c9</code></a> 7.5.9</li> <li><a href="https://github.com/isaacs/node-tar/commit/fbb08518bf290733b68ca4d4135f75becf73fd75"><code>fbb0851</code></a> build minified version as default export</li> <li><a href="https://github.com/isaacs/node-tar/commit/6b8eba0ef367ac937e703238daa6df94ae6f823f"><code>6b8eba0</code></a> 7.5.8</li> <li><a href="https://github.com/isaacs/node-tar/commit/2cb1120bcefe28d7ecc719b41441ade59c52e384"><code>2cb1120</code></a> fix(unpack): improve UnpackSync symlink error "into" path accuracy</li> <li><a href="https://github.com/isaacs/node-tar/commit/d18e4e1f846f4ddddc153b0f536a19c050e7499f"><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 /> [](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>
…cies-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="https://github.com/vitejs/vite-plugin-react/commit/12914fa8c1d32323db6a134d46cd0ca83db91cd1"><code>12914fa</code></a> release: plugin-react-swc@4.2.3</li> <li><a href="https://github.com/vitejs/vite-plugin-react/commit/99e480cf01323268b6f7d5e582ba1662728845d9"><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="https://github.com/vitejs/vite-plugin-react/commit/4a858ea0539ec5a85cbf733287713730560ce268"><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="https://github.com/vitejs/vite-plugin-react/commit/45da3a89b96a5fa16c7d8094272da0d9331b18ff"><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="https://github.com/vitejs/vite-plugin-react/commit/77f5e429d49b53c4115581abccaa9f5405bdf079"><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="https://github.com/vitejs/vite-plugin-react/commit/e327da491fcc0eb9e10b98d7dd674b8375cb0f4f"><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="https://github.com/vitejs/vite-plugin-react/commit/8528e98bb94da1ba32f24d24966ccb89d6cfd006"><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="https://github.com/vitejs/vite-plugin-react/commit/58dfb9d70f3d12db529c2e3da8e80ad36168cceb"><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="https://github.com/vitejs/vite-plugin-react/commit/fefad3dfd9a8505cb8e99d48848d56aa56a7bb48"><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="https://github.com/vitejs/vite-plugin-react/commit/a5124db7210019b8c2a3f170d8a218262eba8da4"><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 /> [](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>
…face) (#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>
…ication 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )