We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 3f9d1df commit 5d9f53eCopy full SHA for 5d9f53e
1 file changed
website/src/pages/api/release.ts
@@ -324,11 +324,13 @@ export const GET: APIRoute = async () => {
324
const published = releases.filter((r) => !r.draft && !r.prerelease);
325
326
// 桌面客户端 release:Release 已按组件拆分(v* / extension-v* / website-v*),
327
- // 以「v 开头的 tag 且包含 Windows 安装包」为准挑选最新客户端 release,
328
- // 同时兼容旧的合并 release 与脚本预创建的空 release
+ // 以「严格三段式 semver tag 且包含 Windows 安装包」为准挑选最新客户端 release,
+ // 同时兼容旧的合并 release 与脚本预创建的空 release。
329
+ // 必须严格 v<major>.<minor>.<patch>:旧客户端 parse_semver 只接受三段式,
330
+ // 两段式/带后缀的 tag 会导致其静默不弹更新,这里直接跳过以保护更新通道
331
const latest = published.find(
332
(r) =>
- /^v\d/.test(r.tag_name) &&
333
+ /^v\d+\.\d+\.\d+$/.test(r.tag_name) &&
334
r.assets.some(
335
(a) =>
336
a.name.endsWith("-setup.exe") || a.name.endsWith("-portable.zip"),
0 commit comments