chore(release): bump version to Ultra1.0

This commit is contained in:
QLHazyCoder
2026-04-26 16:55:01 +08:00
parent 3f3b59bc38
commit c7b9f727cc
8 changed files with 521 additions and 46 deletions
+1 -1
View File
@@ -25,7 +25,7 @@
<div class="header-version-block">
<div class="header-version-main">
<button id="extension-update-status" class="header-version-title header-version-link" type="button"
aria-label="打开 GitHub Releases 页面" title="打开 GitHub Releases 页面">Pro0.0</button>
aria-label="打开 GitHub Releases 页面" title="打开 GitHub Releases 页面">Ultra0.0</button>
<button id="btn-release-log" class="header-link-btn" type="button" hidden>更新日志</button>
</div>
<span id="extension-version-meta" class="header-version-meta" hidden></span>
+6 -6
View File
@@ -2726,7 +2726,7 @@ function renderUpdateReleaseList(releases = []) {
const version = document.createElement('span');
version.className = 'update-release-version';
version.textContent = release.displayVersion || `Pro${release.version}`;
version.textContent = release.displayVersion || `Ultra${release.version}`;
titleRow.appendChild(version);
if (release.title) {
@@ -2820,14 +2820,14 @@ function renderReleaseSnapshot(snapshot) {
}
case 'latest': {
extensionUpdateStatus.textContent = localVersionText || 'Pro0.0';
extensionUpdateStatus.textContent = localVersionText || 'Ultra0.0';
extensionUpdateStatus.classList.add('is-version-label');
resetUpdateCard();
break;
}
case 'empty': {
extensionUpdateStatus.textContent = localVersionText || 'Pro0.0';
extensionUpdateStatus.textContent = localVersionText || 'Ultra0.0';
extensionUpdateStatus.classList.add('is-version-label');
resetUpdateCard();
break;
@@ -2835,7 +2835,7 @@ function renderReleaseSnapshot(snapshot) {
case 'error':
default: {
extensionUpdateStatus.textContent = localVersionText || 'Pro0.0';
extensionUpdateStatus.textContent = localVersionText || 'Ultra0.0';
extensionUpdateStatus.classList.add('is-version-label', 'is-check-failed');
extensionVersionMeta.textContent = snapshot?.errorMessage || 'GitHub Releases 检查失败';
extensionVersionMeta.hidden = false;
@@ -2858,8 +2858,8 @@ async function initializeReleaseInfo() {
const localVersion = sidepanelUpdateService?.getLocalVersionLabel?.(chrome.runtime.getManifest())
|| chrome.runtime.getManifest()?.version_name
|| (chrome.runtime.getManifest()?.version ? `v${chrome.runtime.getManifest().version}` : '');
extensionUpdateStatus.textContent = localVersion || 'Pro0.0';
|| (chrome.runtime.getManifest()?.version ? `Ultra${chrome.runtime.getManifest().version}` : '');
extensionUpdateStatus.textContent = localVersion || 'Ultra0.0';
extensionUpdateStatus.classList.remove('is-update-available', 'is-check-failed');
extensionUpdateStatus.classList.add('is-version-label');
extensionVersionMeta.hidden = true;
+29 -9
View File
@@ -8,11 +8,15 @@
const FETCH_TIMEOUT_MS = 8000;
const MAX_RELEASES = 10;
const MAX_NOTES_PER_RELEASE = 5;
const VERSION_FAMILY_ULTRA = 'ultra';
const VERSION_FAMILY_PRO = 'pro';
const VERSION_FAMILY_LEGACY = 'legacy';
function getVersionFamily(version, fallbackFamily = VERSION_FAMILY_LEGACY) {
const trimmed = String(version || '').trim();
if (/^ultra/i.test(trimmed)) {
return VERSION_FAMILY_ULTRA;
}
if (/^pro/i.test(trimmed)) {
return VERSION_FAMILY_PRO;
}
@@ -23,7 +27,7 @@
}
function stripVersionPrefix(version) {
return String(version || '').trim().replace(/^(?:pro|v)\s*/i, '');
return String(version || '').trim().replace(/^(?:ultra|pro|v)\s*/i, '');
}
function extractVersionCore(version) {
@@ -38,7 +42,7 @@
}
const family = getVersionFamily(version, fallbackFamily);
return `${family === VERSION_FAMILY_PRO ? 'Pro' : 'v'}${core}`;
return `${getVersionFamilyPrefix(family)}${core}`;
}
function parseVersionMeta(version, fallbackFamily = VERSION_FAMILY_LEGACY) {
@@ -47,7 +51,7 @@
return {
family,
core,
displayVersion: core ? `${family === VERSION_FAMILY_PRO ? 'Pro' : 'v'}${core}` : '',
displayVersion: core ? `${getVersionFamilyPrefix(family)}${core}` : '',
parts: core
? core.split('.').map((part) => {
const numeric = Number.parseInt(part, 10);
@@ -57,8 +61,24 @@
};
}
function getVersionFamilyPrefix(family) {
if (family === VERSION_FAMILY_ULTRA) {
return 'Ultra';
}
if (family === VERSION_FAMILY_PRO) {
return 'Pro';
}
return 'v';
}
function getVersionFamilyRank(family) {
return family === VERSION_FAMILY_PRO ? 2 : 1;
if (family === VERSION_FAMILY_ULTRA) {
return 3;
}
if (family === VERSION_FAMILY_PRO) {
return 2;
}
return 1;
}
function parseVersionParts(version, fallbackFamily = VERSION_FAMILY_LEGACY) {
@@ -185,8 +205,8 @@
}
function getComparableReleaseVersion(release) {
const fallbackFamily = release?.family === VERSION_FAMILY_PRO
? VERSION_FAMILY_PRO
const fallbackFamily = [VERSION_FAMILY_ULTRA, VERSION_FAMILY_PRO].includes(release?.family)
? release.family
: VERSION_FAMILY_LEGACY;
const displayVersion = String(release?.displayVersion || '').trim();
if (displayVersion) {
@@ -319,17 +339,17 @@
}
function getLocalVersionLabel(manifest = chrome.runtime.getManifest()) {
const versionName = formatDisplayVersion(manifest?.version_name, VERSION_FAMILY_PRO);
const versionName = formatDisplayVersion(manifest?.version_name, VERSION_FAMILY_ULTRA);
if (versionName) {
return versionName;
}
const versionCore = extractVersionCore(manifest?.version || '');
return versionCore ? formatDisplayVersion(`v${versionCore}`, VERSION_FAMILY_LEGACY) : '';
return versionCore ? formatDisplayVersion(`Ultra${versionCore}`, VERSION_FAMILY_ULTRA) : '';
}
async function getReleaseSnapshot(options = {}) {
const localVersion = getLocalVersionLabel(chrome.runtime.getManifest()) || 'v0.0.0';
const localVersion = getLocalVersionLabel(chrome.runtime.getManifest()) || 'Ultra0.0';
try {
const releases = await loadReleases(options);