Commit Graph
4721 Commits
Author SHA1 Message Date
Tunglies 6de0a59756 chore(deps): bump tauri-plugin-mihomo to 0.6.0 and move home card to count stream
Locks both sides to upstream main 17c7757: the WS channel now uses a
single Json transport (connections wire shrinks ~3.4x) and count-stream
error frames are forwarded unchanged; JS/Rust API surfaces stay
identical, so upper-layer code is untouched except the card below.

The home Active Connections card now subscribes to the count-only
ws_connections_count stream instead of parsing the full connections
snapshot every second; the full stream runs only while the Connections
page is mounted.
2026-09-07 07:13:27 +08:00
Tunglies b39c5f9b6d test(perf): add macOS Tauri WebView performance harness
Drive the production home traffic graph through embedded WebDriver in an
isolated optimized measurement build. Record attributed WebContent and main
process CPU/RSS distributions across foreground, hidden and restored phases.

Keep replay, raw reports, independent-run comparison, cleanup checks and
focused validation available through project commands. Normal release builds
exclude the automation service and measurement entry points.
2026-09-07 07:13:24 +08:00
Tunglies dd7b032cb1 refactor: retire application portable mode 2026-09-06 20:53:36 +08:00
Tunglies 9c9b7c3992 perf(proxy): read delays once per latency sort 2026-09-06 20:50:15 +08:00
Tunglies ee497cc65d refactor(ipc): remove unused commands 2026-09-06 04:38:46 +08:00
Tunglies 4ed474706a refactor(frontend): consolidate query state ownership
Consolidate ordinary query snapshots on SWR and make Profiles own its query key, cache mutation, and invalidation policy.

Impact:
- remove the generic synchronous query Map while keeping dedicated Mihomo WebSocket snapshots
- eliminate duplicate Profiles refreshes while preserving retries and the 800 ms event throttle
- preserve preload-backed Verge updates and system proxy rollback behavior
- scope uptime polling to the Home Clash info card instead of the app lifetime
- leave RunState, Connections, Traffic, backend, and IPC contracts unchanged
- reduce frontend code by 72 net lines without adding dependencies
2026-09-06 04:32:22 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 00a8518e7a chore(deps): update rust toolchain to v1.98.1 (#7871)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-05 13:17:39 +00:00
❤是纱雾酱哟~andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> e179ce9ac5 chore(deps): update pnpm to v12.3.3 (#7870)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-05 12:58:31 +00:00
❤是纱雾酱哟~andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 3e0a773bd7 chore(deps): update github actions (#7869)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-05 12:54:17 +00:00
Tunglies d8b94d12dd perf(core): batch close connections on mode change 2026-09-04 18:20:39 +08:00
Tunglies 836199cfe2 fix: unify font-family usage across GUI
- Remove hardcoded body font-family from index.scss, use MUI theme dt.font_family instead
- Extract monospace font stack to shared MONACO_FONT_FAMILY constant in utils/font-family.ts
- Add platform check for twemoji mozilla in ip-info-card.tsx
- Consolidate 5 Monaco Editor font-family declarations into single constant
2026-09-04 09:57:24 +08:00
❤是纱雾酱哟~ a640010bc3 fix(clippy): Restrict 2 imports to macOS only (#7858)
* fix(clippy): Remove 2 unused imports

- Drop 2 unused imports according to clippy suggestions

* fix(clippy): Re-add 2 imports and limit to macOS

- Those "unused imports" are only for Windows and Linux
- macOS environment requires those identifiers
2026-09-03 22:31:19 +00:00
wonfen c0c1fbcfc2 refactor(sysproxy): watch the network from the main run loop 2026-09-03 22:42:50 +08:00
wonfen e57d115110 feat(sysproxy): re-apply the proxy when macOS gains a network service 2026-09-03 22:42:49 +08:00
wonfen c89f431cb0 fix(sysproxy): wait for the network before the login-time proxy write 2026-09-03 22:42:49 +08:00
Tunglies 7ffb0ef23b test: remove useless test 2026-09-03 19:18:50 +08:00
Tunglies ff4b4dd822 chore: cleanup build script 2026-09-03 11:28:00 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> dab1647125 chore(deps): update ghcr.io/devcontainers/features/node docker tag to v2 (#7854)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-03 02:54:54 +00:00
Nikolai A. 9cb4ce6cb1 refactor: simplify side menu layout and drag-and-drop logic (#7838)
* 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
2026-09-02 13:40:36 +00:00
oomeow 86b5493a9d fix: windows shutdown being blocked (#7848)
make tauri-plugin-devtools and console-subscriber optional
2026-09-02 06:47:07 +00:00
wonfen ef042ddf82 fix(sysproxy): stop turning a missing network service into a hard failure 2026-09-02 11:46:37 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 78cc4dc532 chore(deps): update github/gh-aw-actions action to v0.88.0 (#7833)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-02 02:26:30 +00:00
❤是纱雾酱哟~ aca9c34dfb ci(renovate): Unlock auto updates for basic built tools and group updates together (#7835)
* 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
2026-09-02 01:13:15 +00:00
oomeow f5cc24ec9f chore: update tauri-plugin-mihomo dep (#7847)
* chore: update tauri-plugin-mihomo dep

* refactor(tauri): remove unnecessary await from clear_all_ws_connections
2026-09-01 13:26:35 +00:00
wonfen e60285b4ae fix(tun): make the TUN switch reflect what the Core actually runs
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.
2026-08-31 17:09:36 +08:00
Tunglies 8611fdc34f chore(deps): update mihomo plugin 2026-08-30 18:34:11 +08:00
❤是纱雾酱哟~ eafa91938d chore(gitattributes): Lock end of line style for shell scripts (#7834)
Assisted-by: vscode-copilot-chat:gemini-3.7-flash codegraph
2026-08-30 06:24:59 +00:00
Tunglies 44f6f6e19b fix(profile): preserve files until explicit deletion 2026-08-30 14:34:28 +08:00
wonfen 632c5b2bc5 fix(windows): repair a data root owned by another account 2026-08-30 11:45:04 +08:00
oomeow 1b76b222fb fix(sysproxy): gsettings command is no longer mandatory on KDE desktop (#7829)
* 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
2026-08-29 17:26:29 +00:00
Tunglies 598b5e690c feat(updater): sanitize release notes and standardize semver 2026-08-29 11:52:08 +08:00
oomeowandTunglies b6de05ffe4 refactor: migrate to @dnd-kit/react and simplify sortable components (#7819)
* 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>
2026-08-28 08:17:02 +00:00
Tunglies 181dfb87a4 chore: migrate to pnpm 12 2026-08-28 11:16:51 +08:00
Christine. 3503a2da29 fix: reset fake-ip-range6: "2001:2::0/64" as default on Tun Mode (#7811)
* fix: reset fake-ip-range6: "2001:2::0/48" as default on Tun Mode

* update: fake-ip-range6 to "2001:2::0/64"

* fix: sync test data
2026-08-26 00:24:28 +08:00
Tunglies 4c1df582ba fix(profile): propagate subscription update failures 2026-08-26 00:24:28 +08:00
Tunglies 695fadf21e fix(security): restrict external URL opening
Close: 7800
2026-08-25 16:11:47 +08:00
Tunglies b7c4f7d39b refactor: api cleanup (#7812)
* refactor(config): unify YAML persistence

* refactor(config): remove redundant config APIs

* refactor(config): remove unused config APIs

* refactor(config): narrow profile APIs

* fix(config): preserve profiles on invalid reorder

* refactor(startup): narrow resolve helpers

* refactor(config): unify mixed port defaults

* refactor(network): simplify response APIs

* refactor(config): make profile builders infallible

* refactor(config): make profile activation infallible

* refactor(api): simplify internal runtime APIs

* refactor: consolidate internal config and window APIs
2026-08-25 07:19:17 +00:00
wonfen 272c09568c fix(sysproxy): retry a transient system proxy write on Windows 2026-08-24 22:30:42 +08:00
wonfen 8df8edb6dd fix(sysproxy): keep the system proxy usable when the core is not ready 2026-08-24 19:32:52 +08:00
Tunglies 9085d907cd perf: reduce idle backend work 2026-08-24 18:42:49 +08:00
Tunglies eb6c81b00f feat(macos): adopt Icon Composer 2 app icon 2026-08-24 10:20:46 +08:00
Tunglies a1dae06791 chore(deps): update native service stack (#7792) 2026-08-23 09:58:50 +00:00
Tunglies 6eaf65ff0f fix(profiles): stabilize drag reorder motion
Close: 7798
2026-08-23 17:10:38 +08:00
❤是纱雾酱哟~ f68f204fc2 chore(deps): revert dependency rust to v1.95.0 (#7796)
* chore(deps): revert dependency rust to v1.95.0

Assisted-by: vscode-local-agent:gemini-3.6-flash

* chore(deps): revert dependency rust to v1.95.0

Assisted-by: vscode-local-agent:gemini-3.6-flash
2026-08-22 13:33:37 +00:00
oomeow 4673360f69 feat(home): add fixed proxy indicator to current-proxy-card (#7790)
* feat(home): add fixed proxy indicator to current-proxy-card

* docs: update changelog with node status display improvement

* refactor(home): rename selectedNameIsFixed to fixedProxyInUsed
2026-08-22 11:35:37 +00:00
Tunglies b58ffc909b fix(ci): skip AI review when quota is unavailable 2026-08-22 14:54:57 +08:00
Tunglies c009de42a1 fix(proxy): hide provider names in node cards 2026-08-22 13:42:45 +08:00
Tunglies 0d3f141f20 test: remove redundant backend coverage 2026-08-22 08:53:42 +08:00
Tungliesandwonfen 629c00dc4a fix(port): handle stale macOS wildcard guards
Co-authored-by: wonfen <eiwonfen@gmail.com>
2026-08-22 04:17:15 +08:00
Tunglies 2717aaadad fix: media unlock checking behavior (#7778)
* 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
2026-08-21 21:27:27 +08:00