Commit Graph

101 Commits

Author SHA1 Message Date
ezequielnick
a092eb50c3 feat(plugin): CPX v2 availability hardening (squash of cpx-v2-availability-hardening)
Client-side hardening of the CPX airport plugin, squashed from 46 commits
forked at 89c2bb0e. Behaviour changes:

- Unified operation model (§0.4/0.5): one deadline + one AbortSignal + one
  persistence commit per operation; per-plugin lock → vault lock hierarchy;
  tombstone on delete; every wait (lock, DNS preflight, proxy resolution,
  vault decrypt) is bounded by the same budget.
- Routing: direct/proxy auto-fallback with a pre-send guard; proxied https
  builds its own CONNECT tunnel (an aborted hung CONNECT closes its socket);
  invalid local-proxy ports are refused instead of falling back to :80; the
  core's inbound credentials are carried to the local proxy; NAT64 and
  site-local IPv6 ranges are non-public.
- Gateways: multi-gateway recovery with one rediscovery per operation,
  normalized endpoint paths, signed discovery documents (Ed25519, seq/digest
  accept/align/rollback/equivocation), commit order vault → plugin.yaml.
- Subscriptions: a fetched subscription is validated by the core (mihomo -t)
  against the current override set before it replaces the profile, inside
  the profile write critical section (profile.yaml and override.yaml share
  one write queue); schedule fields are read at write time; the first
  subscription is activated through the real switch flow; profile deletion
  removes the record last so any failure stays retryable.
- Devices: a re-login that replaces a still-valid device records it in the
  vault (staleDevices) and retires it after the login, after later
  successful fetches and on removal; enroll compensation restores the old
  vault and keeps an un-revoked new device for retirement.
- Vault: on Linux the vault is persisted only behind a system secret store
  (backend name + ciphertext-prefix canary); otherwise it stays in memory.
  A cache-miss read releases the caller at the budget while the lock is held
  until the decrypt ends.
- Config caches (plugin.yaml, profile.yaml, override.yaml) can no longer be
  rolled back by a late cold read.
- Reference gateway and provider guides updated (deploy contract, discoveryUrls
  same-origin rule, /revoke after re-login); https-proxy-agent dropped.

Reviewed in a Codex loop (gpt-6, 38 calls): 74 findings, 68 fixed and
verified, 6 invalid, no backlog. Tests: vitest 501, gateway 106.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 22:44:13 +08:00
Memory
0f26f22987 chore: update electron 2026-09-03 21:40:48 +08:00
zjdndjf
9776b8791a fix: patch vite-plugin-monaco-editor for modern Node 2026-08-24 01:12:00 +08:00
Memory
cf13cb9d28 fix Windows ARM64 NSIS installer 2026-08-15 13:00:53 +08:00
Memory
48c703a354 revert: downgrade Electron to 43.2.0 2026-08-14 22:46:43 +08:00
Memory
043ab2def0 chore: update dependencies and migrate to pnpm 11 2026-08-11 20:26:34 +08:00
ezequielnick
b06667c6d7 fix: improve plugin vault keychain handling 2026-07-17 03:23:00 +08:00
Memory
becad752f6 feat: add pacman package support for linux 2026-07-07 21:29:01 +08:00
ezequielnick
0c891030df feat: airport plugin 2026-07-01 08:46:41 +08:00
Memory
02896c6de1 chore: update dependencies and changelog
* update depends

* update changelog
2026-06-21 21:25:17 +08:00
zjdndjf
807495749a feat: support age encrypted profiles 2026-06-14 02:55:32 +08:00
Memory2314
1cda8e310c update depends 2026-05-11 20:44:51 +08:00
Memory
82436d2fbf chore: upgrade electron to 41 and fix black screen on startup 2026-04-26 12:41:00 +08:00
Memory
619a143369 feat: add QR code modal for remote profile subscription URL 2026-04-19 23:11:25 +08:00
Memory
0f1cd352db feat: port network topology visualization to network page 2026-04-03 17:25:46 +08:00
Memory2314
8530cdefcc pnpm update 2026-03-29 23:41:53 +08:00
Memory2314
25a3bbe557 update depends 2026-03-22 12:50:41 +08:00
Memory
85f9e4755a feat: add network info page & card with IP display, auto-merge missing sider order entries 2026-03-22 11:35:14 +08:00
Memory2314
8d827d40b7 update depends 2026-02-25 19:54:50 +08:00
Memory
1c17cfb683 refactor: external controller & rule editor
* update external controller labels for clarity

* add generate and toggle visibility for external controller secret

* add validation for external controller and rule payloads

* enhance rule payload validation UI with prominent error styling
2026-02-02 12:46:41 +08:00
Memory
e9c72ce448 feat: show app icons in connections page 2026-01-25 14:59:48 +08:00
Memory
e6548a0bc3 fix: update sysproxy-rs path in package.json and pnpm-lock.yaml 2026-01-09 19:56:36 +08:00
xmk23333
e70ca694b9 fix: resolve eslint errors and enhance code review rules 2026-01-08 12:29:10 +08:00
xmk23333
b42287d104 chore: optimize sysproxy-rs with error handling and smaller binary 2026-01-07 14:02:21 +08:00
xmk23333
5d10c45206 refactor: replace @mihomo-party/sysproxy with local sysproxy-rs 2026-01-06 02:22:33 +08:00
xmk23333
923bd8d7ee fix: lock electron and electron-vite versions to prevent breaking upgrades 2026-01-01 11:51:58 +08:00
Memory
3f1d1f84a1 update depends 2025-12-31 22:22:07 +08:00
xmk23333
38d9e8b81b chore: upgrade all dependencies 2025-12-28 18:02:28 +08:00
Memory
fb33f37652 feat: Data Colletct File Size
* add @mihomo-party/sysproxy

* feat: Data Colletct File Size

* update changelog
2025-11-17 22:54:17 +08:00
Memory2314
70dcf5e598 update depends 2025-11-16 13:13:14 +08:00
Memory
96552778e6 chore: update depends & add missing translation
* update depends

* add missing translation
2025-10-22 12:38:09 +08:00
Memory
29a8904e03 update depends 2025-09-12 12:59:23 +08:00
Memory
c506d60e66 feat: support cron in profile update interval (#964) 2025-08-16 19:56:39 +08:00
ezequielnick
2e4090460d chore: Upgrade tailwindcss 2025-08-04 18:49:13 +08:00
ezequielnick
f2ed0caced chore: update deps 2025-08-04 18:49:13 +08:00
pompurin404
9acab62d1f chore: update dependencies 2025-02-04 08:31:23 +08:00
pompurin404
0c1d259332 chore: update dependencies, migrate from NextUI to HeroUI 2025-02-04 07:57:49 +08:00
pompurin404
8210b477ab feat: add i18n support with English translations 2025-02-04 07:38:53 +08:00
pompurin404
77b67849ed fix: remove nested button element in NextUI Card component 2025-02-03 07:30:33 +08:00
Pompurin404
7cece23769 update depends and remove artifact 2025-01-10 18:09:10 +08:00
Avan
7d70008148 fix: nextui switch input width overflow (#437) 2025-01-01 01:27:51 +08:00
Pompurin404
c8269c3496 fix sysproxy on macos 2025-01-01 00:22:51 +08:00
Pompurin404
0b06d2ac9d Revert "only enable notarize when release"
This reverts commit 1e3febdc80.
2025-01-01 00:22:51 +08:00
Pompurin404
1e3febdc80 only enable notarize when release 2024-12-31 12:44:10 +08:00
xishang0128
e2653170c0 Add provider file view/edit 2024-11-20 18:07:54 +08:00
pompurin404
74f56ae49d update depends 2024-11-07 20:39:27 +08:00
pompurin404
e4fab9d5e8 update template 2024-10-24 10:58:48 +08:00
pompurin404
82c4708636 Revert "use webdav legacy"
This reverts commit cd0a9dd911.
2024-10-24 10:48:43 +08:00
pompurin404
d06f70ccb9 1.5.4 2024-10-24 10:06:59 +08:00
pompurin404
742f044cee fix blurry text in modal 2024-10-24 10:03:58 +08:00