Skip to content

Commit 5d9f53e

Browse files
committed
fix(website): release API 严格匹配三段式 semver tag
旧客户端 parse_semver 只接受 v<major>.<minor>.<patch>,两段式或带后缀的 tag 会导致其静默不弹更新,release API 挑选最新客户端 release 时直接跳过此类 tag 以保护更新通道。
1 parent 3f9d1df commit 5d9f53e

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

website/src/pages/api/release.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -324,11 +324,13 @@ export const GET: APIRoute = async () => {
324324
const published = releases.filter((r) => !r.draft && !r.prerelease);
325325

326326
// 桌面客户端 release:Release 已按组件拆分(v* / extension-v* / website-v*),
327-
// 以「v 开头的 tag 且包含 Windows 安装包」为准挑选最新客户端 release,
328-
// 同时兼容旧的合并 release 与脚本预创建的空 release
327+
// 以「严格三段式 semver tag 且包含 Windows 安装包」为准挑选最新客户端 release,
328+
// 同时兼容旧的合并 release 与脚本预创建的空 release。
329+
// 必须严格 v<major>.<minor>.<patch>:旧客户端 parse_semver 只接受三段式,
330+
// 两段式/带后缀的 tag 会导致其静默不弹更新,这里直接跳过以保护更新通道
329331
const latest = published.find(
330332
(r) =>
331-
/^v\d/.test(r.tag_name) &&
333+
/^v\d+\.\d+\.\d+$/.test(r.tag_name) &&
332334
r.assets.some(
333335
(a) =>
334336
a.name.endsWith("-setup.exe") || a.name.endsWith("-portable.zip"),

0 commit comments

Comments
 (0)