diff --git a/src/pages/about.js b/src/pages/about.js
index 1789fd0..64f86ab 100644
--- a/src/pages/about.js
+++ b/src/pages/about.js
@@ -187,7 +187,10 @@ async function showVersionPicker(page, currentVersion) {
-
@@ -266,6 +269,8 @@ async function showVersionPicker(page, currentVersion) {
}
}
+ let showNightly = false
+
async function loadVersions(source) {
select.innerHTML = '
'
confirmBtn.disabled = true
@@ -274,15 +279,31 @@ async function showVersionPicker(page, currentVersion) {
if (!versionsCache[source]) {
versionsCache[source] = await api.listOpenclawVersions(source)
}
- const versions = versionsCache[source]
- if (!versions.length) {
+ const allVersions = versionsCache[source]
+ if (!allVersions.length) {
select.innerHTML = '
'
return
}
+ const stable = allVersions.filter(v => !v.includes('nightly') && !v.includes('canary') && !v.includes('alpha') && !v.includes('beta') && !v.includes('rc') && !v.includes('dev') && !v.includes('next'))
+ const versions = showNightly ? allVersions : (stable.length > 0 ? stable : allVersions)
+ const nightlyCount = allVersions.length - stable.length
select.innerHTML = versions.map(v => {
const isCurrent = isInstalled && v === currentVersion.current && source === (currentVersion.source === 'official' ? 'official' : 'chinese')
return `
`
}).join('')
+ // nightly 切换提示
+ const toggleEl = overlay.querySelector('#nightly-toggle')
+ if (toggleEl) {
+ if (nightlyCount > 0) {
+ toggleEl.style.display = ''
+ toggleEl.innerHTML = showNightly
+ ? `
隐藏预览版 (${nightlyCount})`
+ : `
显示预览版 (${nightlyCount})`
+ toggleEl.querySelector('#btn-toggle-nightly').onclick = (e) => { e.preventDefault(); showNightly = !showNightly; loadVersions(source) }
+ } else {
+ toggleEl.style.display = 'none'
+ }
+ }
updateHint()
} catch (e) {
select.innerHTML = `
`