wonfen
bdeaf2a062
perf: improve drag performance for large profile lists
2026-07-17 03:08:22 +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
eaf4fc2c17
fix: handle empty HTTP request timeout in profile editor
2026-07-13 01:31:44 +08:00
Tunglies
0c86b70fe9
refactor(frontend): reuse sortable arrayMove
2026-07-11 18:58:31 +08:00
wonfen
979defc070
fix: prevent rules editor from clearing custom rules before load
2026-07-09 13:46:24 +08: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
Tunglies
3a4cd2c361
Revert "fix: update js-yaml imports for v5"
...
This reverts commit 250198d547 .
Revert "chore(deps): update dependency js-yaml to v5 (#7331 )"
This reverts commit b44f671fc2 .
2026-06-29 05:17:04 +08:00
Tunglies
250198d547
fix: update js-yaml imports for v5
2026-06-29 03:28:46 +08:00
wonfen
7e233efd10
feat: add reset button to Global script
2026-06-18 15:13:38 +08:00
Tunglies
fa27d3eae5
Revert "feat(cvd): add device-bound subscription protocol"
...
This reverts commit 2cb9c13ab6 .
2026-06-02 21:02:19 +08:00
wonfen
2cb9c13ab6
feat(cvd): add device-bound subscription protocol
2026-06-02 13:43:54 +08:00
Tunglies
3444d594ac
perf(profile): optimize profile batch update and worker config
2026-05-29 20:18:40 +08:00
Tunglies
21878ea936
Refactor timer management and remove delay_timer dependency ( #7075 )
...
* Refactor timer management and remove delay_timer dependency
The delay_timer spawned tokio threads of cores, which not controled by expected.
* refactor: improve logging messages in Timer implementation
* fix(timer): prevent potential panic by using saturating_mul for interval calculations
* refactor timer scheduler
* chore: translate timer logs to english
* fix timer clippy warnings
* fix profile auto update refresh
* fix duplicate profile update notification
* fix: prevent potential panic in lightweight timer setup
* fix profile update listener cleanup
* Revert "fix duplicate profile update notification"
This reverts commit 4aafa94d3e .
2026-05-22 04:30:48 +00:00
wonfen
15de400f2f
fix: align backup dialogs with in-app modal behavior
2026-05-20 10:24:11 +08:00
Tunglies
a60ef75061
perf: lazy load monaco editor
2026-05-14 02:31:20 +08:00
Tunglies
b85b435e00
refactor: structure config validation outcomes
...
- Replace boolean/string validation results with structured ValidationOutcome values across config validation, profile switching, DNS validation, and script validation. Callers can now distinguish valid, invalid, skipped, and busy states, with invalid results carrying an error kind and message.
- Route core config updates through structured outcomes and checked forced updates. Generation and validation failures now discard runtime drafts and surface validation failures instead of relying on empty success messages.
- Preserve existing frontend ergonomics by keeping boolean service wrappers where callers only need success, while direct DNS and script validation consumers receive ValidationOutcome. Failed profile editor saves reload the backend-restored file content and synchronize Monaco models so reopened editors show the restored state.
2026-04-25 13:31:08 +08:00
Tunglies
72394eb9b7
feat(ui): add QR code sharing for remote profiles
...
Add "Share QR Code" context menu item to remote profile cards.
2026-04-19 22:20:17 +08:00
71dc5f0bdb
chore(deps): update npm dependencies to v9 (major) ( #6819 )
...
* fix: replace DeleteOutline with DeleteOutlined icon in BackupHistoryViewer
* chore(deps): update npm dependencies to v9
* refactor: bump @mui to v9
---------
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com >
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-15 14:12:06 +00:00
Tunglies
bff78d96b4
chore: migrate formatter from prettier to biome
2026-04-07 01:32:14 +08:00
Tunglies
b8fbabae04
fix: frontend memory leaks — Monaco dispose, TQ cache eviction, useEffect cleanup
...
- Dispose Monaco editor instances on dialog close to prevent cycle leak
- Replace gcTime: Infinity with finite TTLs and evict orphaned subscription queryKeys
- Add missing useEffect cleanup for timers, move setTimeout out of useMemo
2026-04-05 23:10:45 +08:00
Tunglies
d6d15652ca
refactor: migrate react-virtuoso to @tanstack/react-virtual
2026-04-03 17:13:13 +08:00
Tunglies
a73fafaf9f
refactor: migrate SWR to TanStack Query v5 ( #6713 )
...
Replace swr with @tanstack/react-query v5 across all hooks, providers,
and components. Introduce singleton QueryClient, WS subscription pattern
via useQuery+useEffect, and enforce component-layer cache access contract.
2026-04-03 08:15:51 +00:00
wonfen
51578c03b0
fix: URL test url
2026-04-03 12:13:04 +08:00
Tunglies
c3aba3fc79
fix(profile): refresh profile data after timer auto-update completes
...
The profile-update-completed event handler was missing a mutate('getProfiles')
call, causing the "X time ago" display to show stale timestamps after
backend timer auto-updates.
2026-03-28 02:37:59 +08:00
Slinetrac
c672a6fef3
refactor: lint ( #6511 )
...
* refactor: lint
* chore: remove eslint-plugin/config-prettier
2026-03-15 07:40:11 +00:00
Slinetrac
837508c02c
feat(monaco): reintroduce meta-json-schema ( #6509 )
...
* refactor(editor): make EditorViewer controlled and unify document state handling
* fix(monaco-yaml): add patchCreateWebWorker
* feat(monaco): reintroduce meta-json-schema
* fix(editor): reset document state on target change
2026-03-15 06:04:59 +00:00
Slinetrac
0bbf9407d8
feat(tun): validate route-exclude-address as CIDR ( #6440 )
...
* feat(tun): validate route-exclude-address as CIDR
* refactor(network): replace ipaddr.js helpers with cidr-block and validator
* docs: Changelog
2026-03-07 09:18:35 +00:00
Tunglies
c429632d80
refactor: update PointerSensor activation constraint to improve responsiveness
2026-03-07 13:58:50 +08:00
wonfen
321017413d
chore: replace node test with cp.cloudflare.com
2026-02-21 14:28:27 +08:00
wonfen
ec6f259794
chore: replace node test with 1.0.0.1
2026-02-19 11:55:09 +08:00
wonfen
ddf455508f
chore: replace node test with 104.16.132.229
2026-02-14 04:41:14 +08:00
wonfen
cf9f235270
chore: replace node test with 8888
2026-02-12 14:52:36 +08:00
Jelipo
44851466cf
fix: add margin and border radius to group svg image ( #6300 )
2026-02-12 04:24:30 +00:00
Sline
31c0910919
feat: Masque ( #6303 )
2026-02-11 12:38:44 +00:00
a7041657c9
chore(deps): lock file maintenance npm dependencies ( #6282 )
...
* chore(deps): lock file maintenance npm dependencies
* chore(deps): run pnpm update
* chore: add parserOptions
* refactor: fix @eslint-react/no-implicit-key
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Slinetrac <realakayuki@gmail.com >
2026-02-09 07:37:07 +00:00
Sline
7730cd1c5b
refactor: fix eslint no-useless-assignment preserve-caught-error ( #6276 )
2026-02-08 05:19:41 +00:00
wonfen
afa591c279
chore: replace node test with 1.1.1.1
2026-02-07 04:21:01 +08:00
Slinetrac
a981be80ef
refactor(base): expand barrel exports and standardize imports
2026-01-06 15:02:10 +08:00
2128e1f788
chore(deps): lock file maintenance npm dependencies ( #6015 )
...
* chore(deps): lock file maintenance npm dependencies
* chore(deps): bump npm deps
* chore: fix eslint ref-name
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Slinetrac <realakayuki@gmail.com >
2026-01-05 13:53:22 +08:00
Slinetrac
522eccdd0e
refactor(icon): extract icon cache logic into reusable hook
2026-01-01 16:35:36 +08:00
Slinetrac
772b87e733
feat: add GUI support for AnyTLS/Mieru/Sudoku and AnyTLS URI parsing
2025-12-30 15:15:55 +08:00
Sukka and Slinetrac
8e48e4ed10
chore(eslint): add eslint-plugin-react-compiler ( #5918 )
...
* chore(eslint): add `eslint-plugin-react-compiler`
* refactor: fix eslint warnings and avoid in-render mutations
---------
Co-authored-by: Slinetrac <realakayuki@gmail.com >
2025-12-22 12:51:20 +08:00
Slinetrac
2515deefed
Revert "refactor(editor-viewer): simplify loading/save flow with timeout fallback ( #5905 )"
...
This reverts commit c84bb91f4a .
2025-12-21 20:28:38 +08:00
Sline
c84bb91f4a
refactor(editor-viewer): simplify loading/save flow with timeout fallback ( #5905 )
2025-12-21 17:10:52 +08:00
Slinetrac
5afe11e55b
fix(monaco): disable MUI Dialog focus enforcement for Monaco editor #5885
...
Closes #5885
2025-12-20 16:12:45 +08:00
Slinetrac
bae65a523a
chore: rename files to kebab-case and update imports
2025-12-09 13:52:42 +08:00
Slinetrac
45d4f0e89c
chore: remove meta-json-schema #5656 #5478
2025-11-29 15:10:41 +08:00
Sline
caca8b2bc4
refactor: debugLog for frontend ( #5587 )
2025-11-25 10:01:04 +08:00
51760a5b95
chore(deps): update npm dependencies ( #5561 )
...
* chore(deps): update npm dependencies
* fix: types
* chore: replace vite-plugin-monaco-editor-esm with utils/monaco
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Slinetrac <realakayuki@gmail.com >
2025-11-22 16:33:34 +08:00
Slinetrac
d110e462aa
Revert "chore(deps): update npm dependencies ( #5558 )"
...
This reverts commit ddcd4a8192 .
2025-11-22 13:49:17 +08:00