* refactor: remove duplicated list wrapper in side menu
* refactor: simplify side menu layout and drag drop logic
- Always render DragDropProvider and pass disabled prop to menu items
- Remove redundant layout branches and unused sortable component
* ci(workflows): Revert nodejs version to v24.18.1
- Exactly match what was defined in `.tool-versions`
* ci(renovate): Prevent 3 build tools from being automatically upgraded
- Lock Nodejs, PNPM and Rust version in the repository
- Nodejs, PNPM and Rust are infrastructure build tools or package manager for this repo
- Human manual-bump is required for consistency and stability
- Prevent bumping by Renovate Bot
* ci(renovate): Unlock auto updates of 3 build tools
- Re-allow Nodejs, PNPM and Rust from being automatically upgrade
- Group version bumps together across version lockfiles, GitHub Workflows and Dev Containers
Assisted-by: vscode-copilot-chat:gemini-3.7-flash codegraph
* chore(deps): Bump 2 build tools to latest version
- Bump Nodejs to `v24.20.0` across version lockfiles, GitHub Workflows and Dev Containers
- Bump Rust toolchain to `v1.98.0` across version lockfiles, GitHub Workflows and Dev Containers
Assisted-by: vscode-copilot-chat:gemini-3.7-flash codegraph
The switch read enable_tun_mode while the Core was given
enable_tun_mode && !session_suppression, so falling back to Sidecar left it
showing a TUN that was not running, with nothing to write the flag back.
Drop the session flag: the stored preference is the only truth, re-checked
at startup and written off when the conditions for it are not met, and the
switch renders it against current capability.
* fix(sysproxy): gsettings command is no longer mandatory on KDE desktop
* chore(tauri): update sysproxy dependency to use main branch
* chore(deps): update clash_verge_service_ipc to v2.6.6
* docs(changelog): add KDE proxy setting support note
* refactor: migrate to @dnd-kit/react and simplify sortable components
* chore: enable css formatting in biome.json
* refactor(profile): simplify icon rendering logic and add alt text
* style(profiles): add overflow hidden to profile grid container
* refactor(profile): add radix for parseInt and improve type safety in profiles
* docs: update changelog with drag-and-drop styling improvements
* refactor(profile): move hasValidName function out of ProxiesEditorViewer
* refactor(proxy): refactor proxy chain into sortable components
* feat(proxy): add drop state styling and arrow animations to proxy chain
* style(profiles): reduce horizontal padding in profile grid
* feat(profile): add vertical margin to editor viewer items
* chore: refresh pnpm lockfile
* fix: preserve drag and drop behavior
---------
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
* fix: Gemini test
* naming unlock
* test type
* refactor: deduplicate media unlock checks
* fix: run media unlock checks individually
* fix(media-unlock): satisfy clippy const lint
* fix: stream media unlock test results
* fix: streamline media unlock checks
* fix: force HTTP/1 for media unlock checks
* fix: limit concurrent media unlock checks
* feat: allow concurrent media unlock item checks
Windows publishes the core by moving the running binary aside, and only the
success path could delete it afterwards. A failed restart left it on disk,
and the uninstaller did not know about it either.
mihomo's updater truncates its own running executable in place; macOS kills
that under Hardened Runtime and leaves a 0-byte core. Verge now downloads the
release, verifies a staged copy next to the target, and renames it into place,
which never touches the inode the running core executes from.
Closes#6834
* fix(sysproxy): use platform bypass separator
* refactor: squash conditional compilation logic
- Share a single `BYPASS_SEPERATOR` definition between both Linux and macOS
---------
Co-authored-by: Ayanami <ay@nami.ltd>
Co-authored-by: ❤是纱雾酱哟~ <49941141+Dragon1573@users.noreply.github.com>
Co-authored-by: oomeow <oomeow@outlook.com>