源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
export const RELEASE_REPO_OWNER = "tutti-os";
|
||||
export const RELEASE_REPO_NAME = "tutti";
|
||||
export const LEGACY_RELEASE_TAG_PREFIX = "tutti-desktop-v";
|
||||
export const RELEASE_TAG_PREFIX = "v";
|
||||
|
||||
export function parseReleaseTag(tag) {
|
||||
const normalized = typeof tag === "string" ? tag.trim() : "";
|
||||
if (
|
||||
normalized.startsWith(LEGACY_RELEASE_TAG_PREFIX) &&
|
||||
normalized.length > LEGACY_RELEASE_TAG_PREFIX.length
|
||||
) {
|
||||
return normalized.slice(LEGACY_RELEASE_TAG_PREFIX.length);
|
||||
}
|
||||
|
||||
if (
|
||||
normalized.startsWith(RELEASE_TAG_PREFIX) &&
|
||||
normalized.length > RELEASE_TAG_PREFIX.length
|
||||
) {
|
||||
return normalized.slice(RELEASE_TAG_PREFIX.length);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
export function normalizeReleaseVersion(value) {
|
||||
const normalized = typeof value === "string" ? value.trim() : "";
|
||||
const parsed = parseReleaseTag(normalized);
|
||||
if (parsed) {
|
||||
return parsed;
|
||||
}
|
||||
|
||||
return normalized.startsWith("v") ? normalized.slice(1) : normalized;
|
||||
}
|
||||
|
||||
export function normalizeReleaseTag(value) {
|
||||
return `${RELEASE_TAG_PREFIX}${normalizeReleaseVersion(value)}`;
|
||||
}
|
||||
Reference in New Issue
Block a user