mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-08-18 16:00:57 +00:00
35845c14e6
Summary Reconcile the Android system VPN after the GUI has finished initializing the EasyTier core. Retry reconciliation while network information or the virtual IPv4 address is not ready yet. Serialize reconciliation work and de-duplicate concurrent VPN permission requests. Root cause On Android, the network instance can report that it has started before collectNetworkInfo exposes the instance state and virtual IPv4 address. The previous startup path treated that temporary state as a terminal failure, stopped VPN setup, and relied on another event to retry it. If no later event arrived, peers could connect successfully while the Android VpnService remained inactive until the user stopped and started the network again. PR #1628 added polling for the DHCP-specific empty-IP case. The same race can occur earlier, while network information is still unavailable, and can also affect static-IP configurations.
65 lines
2.2 KiB
JSON
65 lines
2.2 KiB
JSON
{
|
|
"name": "easytier-gui",
|
|
"type": "module",
|
|
"version": "2.6.4",
|
|
"private": true,
|
|
"packageManager": "pnpm@9.12.1+sha512.e5a7e52a4183a02d5931057f7a0dbff9d5e9ce3161e33fa68ae392125b79282a8a8a470a51dfc8a0ed86221442eb2fb57019b0990ed24fab519bf0e1bc5ccfc4",
|
|
"scripts": {
|
|
"dev": "pnpm --dir ../easytier-web/frontend-lib build && vite",
|
|
"build": "pnpm --dir ../easytier-web/frontend-lib build && vue-tsc --noEmit && vite build",
|
|
"preview": "vite preview",
|
|
"test:mobile-vpn": "vitest run src/composables/mobile_vpn.test.ts",
|
|
"tauri": "tauri",
|
|
"lint": "eslint . --ignore-pattern src-tauri",
|
|
"lint:fix": "eslint . --ignore-pattern src-tauri --fix"
|
|
},
|
|
"dependencies": {
|
|
"@primeuix/themes": "^1.2.3",
|
|
"@tauri-apps/plugin-autostart": "2.0.0",
|
|
"@tauri-apps/plugin-clipboard-manager": "2.3.0",
|
|
"@tauri-apps/plugin-os": "2.3.0",
|
|
"@tauri-apps/plugin-process": "2.3.0",
|
|
"@tauri-apps/plugin-shell": "2.3.0",
|
|
"@vueuse/core": "^11.2.0",
|
|
"easytier-frontend-lib": "workspace:*",
|
|
"ip-num": "1.5.1",
|
|
"pinia": "^2.2.4",
|
|
"primevue": "^4.3.9",
|
|
"tauri-plugin-vpnservice-api": "workspace:*",
|
|
"vue": "^3.5.12",
|
|
"vue-router": "^4.4.5"
|
|
},
|
|
"devDependencies": {
|
|
"@antfu/eslint-config": "^3.7.3",
|
|
"@intlify/unplugin-vue-i18n": "^5.2.0",
|
|
"@primevue/auto-import-resolver": "4.3.9",
|
|
"@tauri-apps/api": "2.7.0",
|
|
"@tauri-apps/cli": "2.7.1",
|
|
"@types/default-gateway": "^7.2.2",
|
|
"@types/node": "^22.7.4",
|
|
"@types/uuid": "^10.0.0",
|
|
"@vitejs/plugin-vue": "^5.1.4",
|
|
"@vue-macros/volar": "0.30.5",
|
|
"autoprefixer": "^10.4.20",
|
|
"cidr-tools": "^11.0.2",
|
|
"default-gateway": "^7.2.2",
|
|
"eslint": "^9.12.0",
|
|
"eslint-plugin-format": "^0.1.2",
|
|
"postcss": "^8.4.47",
|
|
"tailwindcss": "=3.4.17",
|
|
"typescript": "^5.6.2",
|
|
"unplugin-auto-import": "^0.18.3",
|
|
"unplugin-vue-components": "^0.27.4",
|
|
"unplugin-vue-macros": "^2.13.3",
|
|
"unplugin-vue-markdown": "^0.26.2",
|
|
"unplugin-vue-router": "^0.10.8",
|
|
"uuid": "^10.0.0",
|
|
"vite": "^5.4.21",
|
|
"vite-plugin-vue-devtools": "^7.4.6",
|
|
"vite-plugin-vue-layouts": "^0.11.0",
|
|
"vitest": "^2.1.9",
|
|
"vue-i18n": "^10.0.0",
|
|
"vue-tsc": "^2.1.10"
|
|
}
|
|
}
|