Commit Graph
4508 Commits
Author SHA1 Message Date
wonfen 993cc2ffb1 fix(core): skip service wait for elevated TUN startup 2026-07-15 04:30:55 +08:00
ysakura99andwonfen f1e0622813 fix(connections): show destination IP as host for raw-IP targets (#7483)
* fix(connections): show destination IP as host for raw-IP targets

When metadata.host is empty (a raw-IP CONNECT with no domain), the
connection "Host" column fell back to remoteDestination (the outbounds
relay/exit address) joined with the destination port, which misleadingly
showed the relay as the connections destination.

Fall back to metadata.destinationIP instead, in both the list column
(getConnectionHost) and the detail panel.

Closes #6669

* fix(connections): preserve fallback for empty destination IP

---------

Co-authored-by: wonfen <eiwonfen@gmail.com>
2026-07-14 14:42:07 +08:00
Tunglies 7ca20fc4ed refactor: knip cleanup (#7468)
* chore(frontend): expand Knip reports

* chore: remove unused Mihomo changelog sync script

* refactor: remove unused value exports

* refactor: remove unused type exports

* refactor: remove circular route dependencies

* chore(frontend): move Knip scope to config

* chore(i18n): remove stale portable update message
2026-07-13 11:29:25 +08:00
wonfen 6f9fb97b31 fix: clippy 2026-07-13 11:09:13 +08:00
wonfen eaf4fc2c17 fix: handle empty HTTP request timeout in profile editor 2026-07-13 01:31:44 +08:00
wonfen 7155047e02 fix(backup): accept numeric UTC WebDAV dates 2026-07-13 01:21:26 +08:00
oomeow 0337340471 fix(proxy): increase debounce delay and refine head state logic (#7464) 2026-07-12 08:22:22 +00:00
Tunglies 14bc636ee8 refactor(frontend): remove unused modules 2026-07-12 12:42:27 +08:00
Tunglies 656b6b6d44 chore(frontend): add Knip unused file report 2026-07-12 12:42:27 +08:00
wonfen 604fdb9252 chore: update changelog 2026-07-12 04:20:14 +08:00
doudouabcandwonfen 6ad480f898 修复局域网无法使用的BUG (#7428)
Co-authored-by: wonfen <96291150+wonfen@users.noreply.github.com>
2026-07-12 02:05:55 +08:00
Tunglies 0c86b70fe9 refactor(frontend): reuse sortable arrayMove 2026-07-11 18:58:31 +08:00
Tunglies 6d3761a9ee refactor(frontend): remove obsolete monitor diagnostics 2026-07-11 17:48:16 +08:00
Tunglies ab1e15dceb refactor(frontend): remove retired test page 2026-07-11 16:55:56 +08:00
Tunglies 34fee12496 fix(frontend): warm lazy routes concurrently after idle
Start all navigation route preloads after a single idle gate and show centered loading fallbacks during cold route loads.
2026-07-11 18:01:53 +08:00
oomeow 1847002ebe fix: group tools filter and layout (#7431)
* fix(proxy): group filter

* refactor(proxy): improve layout and structure of proxy render components

* refactor(proxy): remove unnecessary flushSync calls in proxy-group-tools

* feat(proxy): debounce filter input in ProxyGroupTools

* refactor(base-search-box): initialize lastSearchStateRef with current state

* refactor(proxy): remove debug console.log in proxy-groups

* refactor(proxy): improve scrolling behavior in proxy groups

* refactor(proxy): improve scroll position restoration logic

* chore(proxy): reset proxy group tools layout

* style(proxy): adjust margins and spacing in proxy components

* refactor(proxy): remove commented out ProxyGroupTools component
2026-07-11 07:38:32 +00:00
oomeowandTunglies 562828e14d fix: provider proxy delay check (#7456)
* refactor(proxy): support delay testing for provider-based proxies

* style: remove debug console logs

* docs: update changelog

* feat(services): merge provider nodes into records in calcuProxies

---------

Co-authored-by: Tunglies <tunglies.dev@outlook.com>
2026-07-11 05:24:41 +00:00
Tunglies e8cefa8b07 perf(frontend): vectorize home navigation icon 2026-07-10 20:05:41 +08:00
Tunglies b53227dab5 perf(frontend): optimize initial dependency loading 2026-07-10 19:43:55 +08:00
wonfen 2557e9a222 fix(ci): preserve release metadata during builds 2026-07-10 03:32:34 +08:00
wonfen 7085d2bea7 fix(scripts): harden publish-version tag creation 2026-07-09 14:24:08 +08:00
Ming 7e3544cbcc fix(macos): repair menu bar window activation order (#7082) 2026-07-09 05:59:11 +00:00
wonfen 979defc070 fix: prevent rules editor from clearing custom rules before load 2026-07-09 13:46:24 +08:00
StarsSail 406c0ab5a7 fix: parse error (#7430) 2026-07-08 03:35:03 +00:00
renovate[bot]renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Tunglies
8bf5fc1aca chore(deps): update cargo dependencies (#7377)
* chore(deps): update cargo dependencies

* fix aes feature

* fix: update aes-gcm nonce conversion

* refactor: use aes-gcm key init api

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2026-07-06 06:14:15 +00:00
StarsSail d4118295a3 fix: remove unnecessary input fields (#7423)
* fix: remove unnecessary input fields

* fix: remove unnecessary input fields from ProfileViewer component
2026-07-06 02:43:18 +00:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> d7fca9fd70 chore(deps): update dependency @tauri-apps/cli to v2.11.4 (#7376)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 02:35:28 +00:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> bd90d159ee chore(deps): update github actions (#7383)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 02:33:58 +00:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> be15131080 chore(deps): update tauri-apps/tauri-action action to v1 (#7384)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 02:33:39 +00:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> c8af762d8b chore(deps): lock file maintenance (#7390)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 10:30:14 +08:00
Tunglies afbc14840c fix: warm lazy routes after startup visibility 2026-07-06 09:13:11 +08:00
Tunglies 1d7462a021 fix: stop idle mihomo websocket subscriptions 2026-07-06 08:33:23 +08:00
renovate[bot]andrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 20ac214a83 chore(deps): lock file maintenance (#7389)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 00:20:55 +00:00
StarsSail 0407384557 fix: rust lint error (#7424) 2026-07-06 00:19:58 +00:00
wonfen b3f07acb5b fix: limit mihomo yaml wildcard quoting to fake-ip-filter 2026-07-06 06:49:43 +08:00
StarsSail 3da6d7e466 fix: quote wildcard array items in global extension script output (#7414) 2026-07-04 18:20:37 +00:00
wonfen 49ea0cd5df fix(config): remove redundant write that clobbered global hotkey setting 2026-07-05 01:10:56 +08:00
wonfen ac156afc99 fix: macos CI 2026-07-04 23:25:19 +08:00
sgt57 c4658cff88 feat: add window resize handles on linux (#7319) 2026-07-04 03:16:08 +00:00
wonfen 4fa2f9a329 fix(macos): recover webview and stop ws leak after render process terminate 2026-07-04 09:39:44 +08:00
GrainFull 1f76c67afb fix: recover webview lazily and stop ws leak after render process ter… (#7410)
* fix: recover webview lazily and stop ws leak after render process termination

macOS 内存压力下 WKWebView 渲染进程可能被系统杀掉,导致:
1. 从托盘打开主窗口时白屏;
2. 前端无法清理 Mihomo WebSocket 订阅,孤儿订阅持续将 >1KB 的
   payload 写入 tauri ChannelDataIpcQueue 且无人取走,主进程内存
   以 ~150MB/h 持续增长。

注册 on_web_content_process_terminate 钩子:
- 立即清理全部 Mihomo WebSocket 订阅阻断泄漏(托盘速率任务会自动重连);
- 窗口可见时立即 reload 拉起渲染进程恢复页面;窗口隐藏/最小化时仅置位
  待重载标记,等用户下次打开窗口时再 reload——系统正是因内存压力才杀掉
  不可见窗口的渲染进程,立即重建既浪费内存也可能形成反复被杀的循环。

另修复 tray_event 配置为 tray_menu 时误报 invalid tray event 警告。

* fix: gate logging import to macos to satisfy clippy on other platforms
2026-07-04 00:21:03 +00:00
wonfen 336bd9d735 fix(enhance): protect app-owned config from manual overrides 2026-07-04 07:45:13 +08:00
StarsSail e578e473d5 fix: prevent input focus loss in allowOrigins (#7397)
* fix: update CORS configuration to use key-value pairs for allowed origins

* fix: refactor CORS configuration to use AllowOriginItem interface for better type safety
2026-07-03 17:53:51 +00:00
oomeow dd3ef698f5 feat: sticky groups (#7195)
* feat(proxy): implement sticky virtual list and group tools

- Add new StickyVirtualList component for better performance with sticky headers
- Create ProxyGroupTools component for filtering, sorting and testing proxy groups
- Enhance proxy groups with improved scrolling and group toggle functionality
- Integrate search box with click event handling
- Remove redundant ProxyHead component usage

* style: remove unused import and update TypeScript types

* refactor: convert function component to forwardRef component to fix biome lint error

* feat(proxy): extract proxy chain UI to separate component

* refactor: remove custom throttle implementation and simplify dependencies

* feat(proxy): improve proxy groups UI and scrolling behavior

- Add initialOffset prop to StickyVirtualList for better scroll position restoration
- Refactor ProxyGroups component to separate chain and normal modes
- Implement scroll position persistence for both chain and normal modes
- Add sticky shadow effect for expanded proxy groups
- Remove unnecessary ScrollTopButton component
- Optimize scroll event handling with throttling
- Improve code organization with custom hooks and component separation

* docs(proxy-groups): Add TODO comment for initial render position issue

* feat(proxy): improve scroll position handling and UI display

* refactor(proxy): simplify scroll handling logic and remove unused code

* fix(sticky-virtual-list): remove duplicate styles and add padding

* refactor(proxy): rename scroll offset variables and functions for clarity

* refactor: remove unnecessary refs and simplify onClick handlers

* fix(proxy-groups): handle initial scroll position state

* feat(zed): add biome formatter configuration

* refactor(proxy): remove unused headState import and type annotations

* style(proxy): improve type imports and conditional rendering

* .

* feat(proxy): add ProxyHead component to render in global mode

* chore: ignore .zed directory

* docs: update changelog
2026-07-02 13:22:40 +00:00
oomeow c2ddb5c111 refactor: activate selected proxies (#7285)
* feat(profiles): add automatic node activation after profile switch

* refactor(use-profiles): simplify patchCurrent logic by always mutating profiles

* refactor(use-profiles): remove unused activateSelected function and related imports

* refactor: rename worker handle to activate selected task

* fix: clippy

* refactor(config): replace log statements with structured logging

* refactor(config): fix incorrect retry logic in profile activation

* feat(profiles): update proxy cache when switching profiles

* docs: update changelog with bug fixes and logic improvements

* refactor(profiles): remove unused imports and redundant cache update
2026-07-01 12:47:03 +00:00
wonfen af0518d578 fix: guard app setup panics during startup 2026-07-01 11:51:22 +08:00
Tunglies 9a2f4ff8fb fix: warm lazy navigation routes after startup 2026-06-30 21:34:32 +08:00
oomeow e176e4a81e fix(validate): mock console object in validate step (#7358)
* feat(core): mock console object in boa engine context to suppress logs

* style(core): update quote style in validate.rs
2026-06-30 11:27:28 +00:00
oomeow 728c7535c4 feat: supports in-app online update for Linux (#7259)
* feat(updater): add support for multiple Linux package formats and Windows NSIS installers

* style(updater): use template literal for URL concatenation

* docs: add platform format comments to updater.mjs

* test: downgrade version to 2.5.0 to test updater

* chore: add Zed editor settings

* Revert "test: downgrade version to 2.5.0 to test updater"

This reverts commit 9dd6bed5e9.

* chore: format

* chore: remove zed editor settings
2026-06-30 11:26:58 +00:00
Tunglies ad68e445dd rm unused workflow 2026-06-30 18:59:09 +08:00