mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-05 07:03:45 +08:00
release 2.0.0
This commit is contained in:
parent
a610a43db0
commit
e72e8ea631
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
- 重大框架升级:使用 Tauri 2.0(巨量改进与性能提升)
|
- 重大框架升级:使用 Tauri 2.0(巨量改进与性能提升)
|
||||||
- 强烈建议完全删除 1.x 老版本再安装此版本
|
- 强烈建议完全删除 1.x 老版本再安装此版本
|
||||||
- 敬请测试,出现 bug 到 issues 中提出
|
- 出现 bug 到 issues 中提出;以后不再接受1.x版本的bug反馈。
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -49,6 +49,7 @@
|
|||||||
- 修复已有多个订阅导入新订阅会跳选订阅的问题
|
- 修复已有多个订阅导入新订阅会跳选订阅的问题
|
||||||
- 修复多个 Linux 下的 bug, Tun 模式在 Linux 下目前工作正常
|
- 修复多个 Linux 下的 bug, Tun 模式在 Linux 下目前工作正常
|
||||||
- 修复 Linux wayland 下任务栏图标缺失的问题
|
- 修复 Linux wayland 下任务栏图标缺失的问题
|
||||||
|
- 修复 Linux KDE 桌面环境无法启动的问题
|
||||||
- 移除多余退出变量和钩子
|
- 移除多余退出变量和钩子
|
||||||
- 修复 MacOS 下 tray 菜单重启 app 失效的问题
|
- 修复 MacOS 下 tray 菜单重启 app 失效的问题
|
||||||
- 修复某些特定配置文件载入失败的问题
|
- 修复某些特定配置文件载入失败的问题
|
||||||
@ -57,6 +58,11 @@
|
|||||||
- 修复快捷键设置的相关 bug
|
- 修复快捷键设置的相关 bug
|
||||||
- 修复 Win 下点左键菜单闪现的问题(Mac 下的操作逻辑相反,默认情况下不管点左/右键均会打开菜单,闪现不属于 bug)
|
- 修复 Win 下点左键菜单闪现的问题(Mac 下的操作逻辑相反,默认情况下不管点左/右键均会打开菜单,闪现不属于 bug)
|
||||||
|
|
||||||
|
### Know issues
|
||||||
|
|
||||||
|
- Windows 下窗口大小无法记忆(等待上游修复)
|
||||||
|
- Webdav 备份因为安全性和兼容性问题,暂不支持同步 Webdav 服务器地址和登录信息;跨平台配置同步
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## v1.7.7
|
## v1.7.7
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "clash-verge",
|
"name": "clash-verge",
|
||||||
"version": "2.0.0-rc.7",
|
"version": "2.0.0",
|
||||||
"license": "GPL-3.0-only",
|
"license": "GPL-3.0-only",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "cross-env RUST_BACKTRACE=1 tauri dev",
|
"dev": "cross-env RUST_BACKTRACE=1 tauri dev",
|
||||||
|
@ -52,7 +52,7 @@ pub async fn get_proxy_delay(
|
|||||||
let (url, headers) = clash_client_info()?;
|
let (url, headers) = clash_client_info()?;
|
||||||
let url = format!("{url}/proxies/{name}/delay");
|
let url = format!("{url}/proxies/{name}/delay");
|
||||||
|
|
||||||
let default_url = "https://cp.cloudflare.com/generate_204";
|
let default_url = "http://cp.cloudflare.com/generate_204";
|
||||||
let test_url = test_url
|
let test_url = test_url
|
||||||
.map(|s| if s.is_empty() { default_url.into() } else { s })
|
.map(|s| if s.is_empty() { default_url.into() } else { s })
|
||||||
.unwrap_or(default_url.into());
|
.unwrap_or(default_url.into());
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
"devUrl": "http://localhost:3000/"
|
"devUrl": "http://localhost:3000/"
|
||||||
},
|
},
|
||||||
"productName": "Clash Verge",
|
"productName": "Clash Verge",
|
||||||
"version": "2.0.0-rc.7",
|
"version": "2.0.0",
|
||||||
"identifier": "io.github.clash-verge-rev.clash-verge-rev",
|
"identifier": "io.github.clash-verge-rev.clash-verge-rev",
|
||||||
"plugins": {
|
"plugins": {
|
||||||
"updater": {
|
"updater": {
|
||||||
|
@ -205,7 +205,7 @@ export const MiscViewer = forwardRef<DialogRef>((props, ref) => {
|
|||||||
spellCheck="false"
|
spellCheck="false"
|
||||||
sx={{ width: 250, marginLeft: "auto" }}
|
sx={{ width: 250, marginLeft: "auto" }}
|
||||||
value={values.defaultLatencyTest}
|
value={values.defaultLatencyTest}
|
||||||
placeholder="https://cp.cloudflare.com/generate_204"
|
placeholder="http://cp.cloudflare.com/generate_204"
|
||||||
onChange={(e) =>
|
onChange={(e) =>
|
||||||
setValues((v) => ({ ...v, defaultLatencyTest: e.target.value }))
|
setValues((v) => ({ ...v, defaultLatencyTest: e.target.value }))
|
||||||
}
|
}
|
||||||
|
@ -72,16 +72,16 @@ export const getRules = async () => {
|
|||||||
export const getProxyDelay = async (
|
export const getProxyDelay = async (
|
||||||
name: string,
|
name: string,
|
||||||
url?: string,
|
url?: string,
|
||||||
timeout?: number
|
timeout?: number,
|
||||||
) => {
|
) => {
|
||||||
const params = {
|
const params = {
|
||||||
timeout: timeout || 10000,
|
timeout: timeout || 10000,
|
||||||
url: url || "https://cp.cloudflare.com/generate_204",
|
url: url || "http://cp.cloudflare.com/generate_204",
|
||||||
};
|
};
|
||||||
const instance = await getAxios();
|
const instance = await getAxios();
|
||||||
const result = await instance.get(
|
const result = await instance.get(
|
||||||
`/proxies/${encodeURIComponent(name)}/delay`,
|
`/proxies/${encodeURIComponent(name)}/delay`,
|
||||||
{ params }
|
{ params },
|
||||||
);
|
);
|
||||||
return result as any as { delay: number };
|
return result as any as { delay: number };
|
||||||
};
|
};
|
||||||
@ -108,8 +108,8 @@ export const getProxies = async () => {
|
|||||||
// provider name map
|
// provider name map
|
||||||
const providerMap = Object.fromEntries(
|
const providerMap = Object.fromEntries(
|
||||||
Object.entries(providerRecord).flatMap(([provider, item]) =>
|
Object.entries(providerRecord).flatMap(([provider, item]) =>
|
||||||
item.proxies.map((p) => [p.name, { ...p, provider }])
|
item.proxies.map((p) => [p.name, { ...p, provider }]),
|
||||||
)
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
// compatible with proxy-providers
|
// compatible with proxy-providers
|
||||||
@ -154,7 +154,7 @@ export const getProxies = async () => {
|
|||||||
}
|
}
|
||||||
return acc;
|
return acc;
|
||||||
},
|
},
|
||||||
[]
|
[],
|
||||||
);
|
);
|
||||||
|
|
||||||
let globalNames = new Set(globalGroups.map((each) => each.name));
|
let globalNames = new Set(globalGroups.map((each) => each.name));
|
||||||
@ -167,8 +167,8 @@ export const getProxies = async () => {
|
|||||||
|
|
||||||
const proxies = [direct, reject].concat(
|
const proxies = [direct, reject].concat(
|
||||||
Object.values(proxyRecord).filter(
|
Object.values(proxyRecord).filter(
|
||||||
(p) => !p.all?.length && p.name !== "DIRECT" && p.name !== "REJECT"
|
(p) => !p.all?.length && p.name !== "DIRECT" && p.name !== "REJECT",
|
||||||
)
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
const _global: IProxyGroupItem = {
|
const _global: IProxyGroupItem = {
|
||||||
@ -193,7 +193,7 @@ export const getProxyProviders = async () => {
|
|||||||
Object.entries(providers).filter(([key, item]) => {
|
Object.entries(providers).filter(([key, item]) => {
|
||||||
const type = item.vehicleType.toLowerCase();
|
const type = item.vehicleType.toLowerCase();
|
||||||
return type === "http" || type === "file";
|
return type === "http" || type === "file";
|
||||||
})
|
}),
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -210,7 +210,7 @@ export const getRuleProviders = async () => {
|
|||||||
Object.entries(providers).filter(([key, item]) => {
|
Object.entries(providers).filter(([key, item]) => {
|
||||||
const type = item.vehicleType.toLowerCase();
|
const type = item.vehicleType.toLowerCase();
|
||||||
return type === "http" || type === "file";
|
return type === "http" || type === "file";
|
||||||
})
|
}),
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -218,7 +218,7 @@ export const getRuleProviders = async () => {
|
|||||||
export const providerHealthCheck = async (name: string) => {
|
export const providerHealthCheck = async (name: string) => {
|
||||||
const instance = await getAxios();
|
const instance = await getAxios();
|
||||||
return instance.get(
|
return instance.get(
|
||||||
`/providers/proxies/${encodeURIComponent(name)}/healthcheck`
|
`/providers/proxies/${encodeURIComponent(name)}/healthcheck`,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -254,16 +254,16 @@ export const closeAllConnections = async () => {
|
|||||||
export const getGroupProxyDelays = async (
|
export const getGroupProxyDelays = async (
|
||||||
groupName: string,
|
groupName: string,
|
||||||
url?: string,
|
url?: string,
|
||||||
timeout?: number
|
timeout?: number,
|
||||||
) => {
|
) => {
|
||||||
const params = {
|
const params = {
|
||||||
timeout: timeout || 10000,
|
timeout: timeout || 10000,
|
||||||
url: url || "https://cp.cloudflare.com/generate_204",
|
url: url || "http://cp.cloudflare.com/generate_204",
|
||||||
};
|
};
|
||||||
const instance = await getAxios();
|
const instance = await getAxios();
|
||||||
const result = await instance.get(
|
const result = await instance.get(
|
||||||
`/group/${encodeURIComponent(groupName)}/delay`,
|
`/group/${encodeURIComponent(groupName)}/delay`,
|
||||||
{ params }
|
{ params },
|
||||||
);
|
);
|
||||||
return result as any as Record<string, number>;
|
return result as any as Record<string, number>;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user