Compare commits

...
7 Commits
Author SHA1 Message Date
AxTps a2afce2405 fix: 修复自动同步后误报内容更新
Axolotl desktop CI / guardrails (push) Waiting to run
Repository checks / typos (push) Waiting to run
Repository checks / tombi (push) Waiting to run
Rust checks / shear (push) Waiting to run
Sync source to CNB / Sync Git ref (push) Skipped
2026-10-24 18:46:54 +08:00
AxTps a9e43e5bab chore: 仓库更名为 Starlight_Launcher
Axolotl desktop CI / guardrails (push) Waiting to run
Repository checks / typos (push) Waiting to run
Repository checks / tombi (push) Waiting to run
Rust checks / shear (push) Waiting to run
Sync source to CNB / Sync Git ref (push) Skipped
修正 README、行为准则与前端配置中的仓库地址拼写。
2026-10-24 09:03:04 +08:00
AxTps db2199cc87 fix: 修复维基正文空白与个人资料、皮肤预览错乱
- WikiNodeRenderer 补回 WikiAttachmentNode/WikiNotice 导入,正文不再空白
- 个人资料与皮肤预览 key 改用 selectedId,避免瞬时 null 反复重建
2026-10-24 09:01:45 +08:00
AxTps f968de1987 chore: 发布 1.0.2-beta15
Axolotl desktop CI / guardrails (push) Waiting to run
Repository checks / typos (push) Waiting to run
Repository checks / tombi (push) Waiting to run
Rust checks / shear (push) Waiting to run
Starlight release / Release preflight (push) Waiting to run
Prepare pnpm cache / prepare (push) Waiting to run
Sync source to CNB / Sync Git ref (push) Skipped
修复公告中心崩溃、皮肤预览错乱、实例分组不刷新与服务器地图被拦截。
2026-10-24 06:49:56 +08:00
AxTps f10920883d fix: 修复公告中心崩溃、皮肤预览错乱、分组不刷新与地图被拦
Axolotl desktop CI / guardrails (push) Waiting to run
Repository checks / typos (push) Waiting to run
Repository checks / tombi (push) Waiting to run
Rust checks / shear (push) Waiting to run
Sync source to CNB / Sync Git ref (push) Skipped
- 补回公告中心缺失的配图状态与加载函数,组件此前因引用未定义变量而崩溃
- 皮肤预览按玩家与纹理重建渲染器,避免切换后纹理错位
- 设置分组后同步本地实例分组字段,无需刷新页面
- 地图 iframe 的 CSP frame-src 放开 https,适配服务端可配置的地图地址
2026-10-24 06:39:11 +08:00
AxTps bc6b7cac03 chore: 发布 1.0.2-beta14
Axolotl desktop CI / guardrails (push) Waiting to run
Repository checks / typos (push) Waiting to run
Repository checks / tombi (push) Waiting to run
Rust checks / shear (push) Waiting to run
Starlight release / Release preflight (push) Waiting to run
Prepare pnpm cache / prepare (push) Waiting to run
Sync source to CNB / Sync Git ref (push) Skipped
- 皮肤站玩家管理、维基搜索与历史、公告配图、问题追踪附件图片等新功能
- 修复资源下载登录态、管理面板显示、维基跳转等问题
2026-10-23 22:26:16 +08:00
AxTps 78e90876a6 Merge pull request #26 from StarLight-Server/feat/home
Axolotl desktop CI / guardrails (push) Waiting to run
Repository checks / typos (push) Waiting to run
Repository checks / tombi (push) Waiting to run
Rust checks / shear (push) Waiting to run
Sync source to CNB / Sync Git ref (push) Skipped
feat: 维基页支持搜索、分类浏览、关注与移动
2026-10-23 22:18:57 +08:00
14 changed files with 193 additions and 18 deletions

No files matched your search

+2 -2
View File
@@ -51,7 +51,7 @@
如果你遭遇或目睹了违反本准则的行为,请尽快联系项目维护者:
- 对于需要保密的事件,请在 [Starlight Issues](https://git.starlight.cool/AxTps/Starlight_Lancher/issues) 中仅留下“需要私下联系维护者”的简短说明,不要公开事件细节、个人信息、账号令牌或完整日志;维护者会通过可用的私下渠道与你联系。
- 对于需要保密的事件,请在 [Starlight Issues](https://git.starlight.cool/aptxyyds/Starlight_Launcher/issues) 中仅留下“需要私下联系维护者”的简短说明,不要公开事件细节、个人信息、账号令牌或完整日志;维护者会通过可用的私下渠道与你联系。
- 对于一般性的社区问题,可以在相关 Issue 或官方 QQ 群(737601250)中提出。请勿在公开频道发布可能使当事人被识别的敏感信息。
维护者会及时、公平地受理和调查报告,并尽可能保护报告人的隐私。请仅提供与事件相关且你有权分享的信息;恶意或明显虚假的报告也可能构成对社区的骚扰。
@@ -115,7 +115,7 @@ Maintainers may remove, edit, or reject comments, commits, issues, pull requests
If you experience or witness a violation of this Code of Conduct, please contact the project maintainers as soon as possible:
- For confidential matters, please leave only a brief note saying "Need to contact maintainers privately" in the [Starlight Issues](https://git.starlight.cool/AxTps/Starlight_Lancher/issues), without publicly disclosing event details, personal information, account tokens, or full logs; the maintainers will contact you through available private channels.
- For confidential matters, please leave only a brief note saying "Need to contact maintainers privately" in the [Starlight Issues](https://git.starlight.cool/aptxyyds/Starlight_Launcher/issues), without publicly disclosing event details, personal information, account tokens, or full logs; the maintainers will contact you through available private channels.
- For general community issues, you can raise them in the relevant Issue or the official QQ group (737601250). Do not post sensitive information in public channels that could identify the parties involved.
Maintainers will promptly and fairly receive and investigate reports, and protect the privacy of reporters to the best of their ability. Please only provide information that is relevant to the incident and that you are authorized to share; malicious or clearly false reports may also constitute harassment of the community.
Generated
+2 -2
View File
@@ -6841,7 +6841,7 @@ dependencies = [
[[package]]
name = "theseus"
version = "1.0.2-beta13"
version = "1.0.2-beta15"
dependencies = [
"ariadne",
"async-minecraft-ping",
@@ -6945,7 +6945,7 @@ dependencies = [
[[package]]
name = "theseus_gui"
version = "1.0.2-beta13"
version = "1.0.2-beta15"
dependencies = [
"ashpd",
"async_zip",
+5 -5
View File
@@ -5,13 +5,13 @@
<p><strong>次世代 Minecraft 桌面客户端,全能、美观、全平台覆盖。</strong></p>
<p>
<a href="https://github.com/ApTx2012/Starlight_Lancher/actions">
<a href="https://github.com/StarLight-Server/Starlight_Launcher/actions">
<img src="https://img.shields.io/badge/Repo-GitHub-black?style=for-the-badge&logo=github" alt="Repository" />
</a>
<a href="https://github.com/ApTx2012/Starlight_Lancher/releases">
<a href="https://github.com/StarLight-Server/Starlight_Launcher/releases">
<img src="https://img.shields.io/badge/Releases-Download-green?style=for-the-badge&logo=github" alt="Releases" />
</a>
<a href="https://github.com/ApTx2012/Starlight_Lancher/stargazers">
<a href="https://github.com/StarLight-Server/Starlight_Launcher/stargazers">
<img src="https://img.shields.io/badge/Stars-★-ffb800?style=for-the-badge&logo=github" alt="Stars" />
</a>
<a href="COPYING.md">
@@ -21,7 +21,7 @@
<p>
<a href="https://skin.starlight.cool/">官方网站</a> |
<a href="https://github.com/ApTx2012/Starlight_Lancher/releases/latest">下载最新版</a> |
<a href="https://github.com/StarLight-Server/Starlight_Launcher/releases/latest">下载最新版</a> |
<a href="CONTRIBUTING.md">参与贡献</a>
| <a href="CODE_OF_CONDUCT.md">行为准则</a>
</p>
@@ -57,7 +57,7 @@ _(注:本项目是调用 Modrinth 公开 API 的独立客户端,与 Rinth, I
## 下载与安装
请前往 [Releases](https://github.com/ApTx2012/Starlight_Lancher/releases/latest) 下载适合你操作系统的最新安装包。
请前往 [Releases](https://github.com/StarLight-Server/Starlight_Launcher/releases/latest) 下载适合你操作系统的最新安装包。
已安装的用户每次均可通过内置的 Tauri 签名校验机制,自动在后台完成更新,无需手动下载安装更新。
| 系统平台 | 推荐下载文件 |
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@modrinth/app-frontend",
"private": true,
"version": "1.0.2-beta13",
"version": "1.0.2-beta15",
"type": "module",
"scripts": {
"dev": "vite",
@@ -32,6 +32,121 @@ export const ANNOUNCEMENT_CHANGE_TYPES: readonly AnnouncementChangeType[] = [
]
export const launcherAnnouncements: readonly LauncherAnnouncement[] = [
{
id: 'launcher-1.0.2-beta15',
version: '1.0.2-beta15',
publishedAt: '2026-10-24',
title: {
'en-US': 'Starlight Launcher 1.0.2-beta15',
'zh-CN': 'Starlight Launcher 1.0.2-beta15',
},
changes: {
fixed: [
{
'en-US':
'Fixed the announcement center failing to open and blank pages in the wiki and profile views caused by it.',
'zh-CN': '修复公告中心无法打开,以及由此导致的维基与个人资料页面空白。',
},
{
'en-US':
'Fixed the skin preview showing garbled textures after switching between players.',
'zh-CN': '修复切换玩家后皮肤预览出现纹理错乱的问题。',
},
{
'en-US':
'Fixed instance group changes only showing up after refreshing the page.',
'zh-CN': '修复实例分组修改后需要刷新页面才能生效的问题。',
},
{
'en-US':
'Fixed server maps not loading because the map iframe was blocked by the content security policy.',
'zh-CN': '修复服务器地图因 iframe 被内容安全策略拦截而无法显示的问题。',
},
],
},
},
{
id: 'launcher-1.0.2-beta14',
version: '1.0.2-beta14',
publishedAt: '2026-10-23',
title: {
'en-US': 'Starlight Launcher 1.0.2-beta14',
'zh-CN': 'Starlight Launcher 1.0.2-beta14',
},
changes: {
added: [
{
'en-US':
'Skin-site players can now be created, renamed and deleted, and one can be marked as the default account.',
'zh-CN': '皮肤站玩家支持新建、重命名与删除,并可设置默认角色。',
},
{
'en-US':
'The wiki gained search, recent changes and category browsing, plus page watching and title moves.',
'zh-CN': '维基支持搜索、最近更新与分类浏览,页面可关注并修改标题。',
},
{
'en-US':
'Wiki pages now support reading revision history, diffing versions and reverting to an older revision.',
'zh-CN': '维基页面支持查看历史修订、版本对比与撤销到指定版本。',
},
{
'en-US': 'Announcements now display the images attached on the skin site.',
'zh-CN': '公告中心可显示皮肤站公告附带的图片。',
},
{
'en-US': 'Bug reports now render their attached screenshots instead of file hashes.',
'zh-CN': '问题追踪的附件图片改为直接展示,不再显示文件哈希。',
},
],
changed: [
{
'en-US': 'The downloads page shows a sign-in prompt instead of an error when signed out.',
'zh-CN': '未登录时资源下载页改为提示登录,不再弹出错误。',
},
],
fixed: [
{
'en-US': 'Fixed the downloads page reporting a sign-in error even when already signed in.',
'zh-CN': '修复资源下载页在已登录状态下仍提示未登录的问题。',
},
{
'en-US':
'Fixed the admin panel missing user permission groups, showing UUIDs instead of names for announcement authors, and showing option IDs in review answers.',
'zh-CN':
'修复管理面板不显示用户权限组、公告发布人显示为 UUID、审核作答显示选项 ID 的问题。',
},
{
'en-US': 'Fixed the wiki opening a blank page and internal links not navigating correctly.',
'zh-CN': '修复维基首次打开为空白、内部链接跳转异常的问题。',
},
{
'en-US': 'Skin-site player login errors now surface the server-provided reason.',
'zh-CN': '皮肤站玩家登录失败时改为显示服务端给出的具体原因。',
},
{
'en-US': 'Fixed server maps being blocked by CSP and font commands missing permission.',
'zh-CN': '修复服务器地图被 CSP 拦截、字体命令缺少权限的问题。',
},
{
'en-US': 'Backups now support instances that use an external game directory.',
'zh-CN': '备份支持使用外部游戏目录的实例。',
},
{
'en-US': 'The online-player tooltip now renders MOTD colour codes.',
'zh-CN': '在线玩家提示可渲染 MOTD 颜色代码。',
},
{
'en-US': 'Fixed captcha images being cropped and missing the rotation hint.',
'zh-CN': '修复验证码图片被裁切、缺少旋转提示的问题。',
},
{
'en-US': 'The skin-site player list now retries automatically and shows an error state after failures.',
'zh-CN': '皮肤站玩家列表加载失败后自动重试,并显示错误状态。',
},
],
},
},
{
id: 'launcher-1.0.2-beta13',
version: '1.0.2-beta13',
@@ -219,6 +219,32 @@ function saveCache(next: RemoteAnnouncement[]) {
// localStorage may be unavailable (private mode / quota)
}
}
const imageUrls = reactive<Record<string, string>>({})
async function loadImage(item: RemoteAnnouncement, token: string) {
const name = item.image_name
if (!name || imageUrls[item.id]) return
try {
const url = `https://skin.starlight.cool/starlight/skin/image/BROADCAST_ATTACHMENT/${encodeURIComponent(name)}`
const response = await tauriFetch(url, {
method: 'GET',
headers: { Authorization: `Bearer ${token}` },
})
if (!response.ok) return
const type = response.headers.get('content-type') ?? ''
if (type.includes('application/json') || type.includes('text/')) return
const blob = await response.blob()
imageUrls[item.id] = URL.createObjectURL(blob)
} catch {
// 图片加载失败不影响公告本身展示
}
}
function revokeImages() {
for (const url of Object.values(imageUrls)) URL.revokeObjectURL(url)
for (const key of Object.keys(imageUrls)) delete imageUrls[key]
}
async function refresh() {
if (disposed) return
loadCache()
@@ -622,6 +622,7 @@ watch(signedIn, (value) => {
</div>
<SkinPreviewRenderer
v-else
:key="selectedId ?? ''"
:texture-src="texture.skin ?? ''"
:cape-src="texture.cape"
:variant="skinVariant"
@@ -1,6 +1,8 @@
<script setup lang="ts">
import { type SkinSiteWikiNode } from '@/helpers/skin-site-api'
import WikiAttachmentNode from './WikiAttachmentNode.vue'
import WikiNotice from './WikiNotice.vue'
import { safeExternalUrl, safeWikiColor } from './wiki-color'
defineOptions({ name: 'WikiNodeRenderer' })
@@ -157,6 +157,13 @@ export function useInstanceGroups(instances: Ref<{ id: string; groups: string[]
async function setMemberships(updates: InstanceGroupMembershipUpdate[]): Promise<boolean> {
await set_group_memberships(updates)
// 接口成功后同步本地实例的 groups 字段,否则依赖 instances 的分组视图不会重算,
// 用户必须刷新页面才能看到新的分组归属。
const byId = new Map(updates.map((update) => [update.instance_id, update.group_ids]))
instances.value = instances.value.map((instance) => {
const nextGroups = byId.get(instance.id)
return nextGroups ? { ...instance, groups: [...nextGroups] } : instance
})
return true
}
+2 -2
View File
@@ -4,8 +4,8 @@ export const AxolotlBrandConfig = Object.freeze({
productName: 'Starlight Launcher',
shortProductName: 'Starlight',
website: 'https://skin.starlight.cool/',
repositoryUrl: 'https://github.com/ApTx2012/Starlight_Lancher',
releasesUrl: 'https://github.com/ApTx2012/Starlight_Lancher/releases',
repositoryUrl: 'https://github.com/StarLight-Server/Starlight_Launcher',
releasesUrl: 'https://github.com/StarLight-Server/Starlight_Launcher/releases',
supportUrl: 'https://skin.starlight.cool/',
qqGroupNumber: '000000000',
qqChannelUrl: 'https://skin.starlight.cool/',
+1 -1
View File
@@ -1,7 +1,7 @@
[package]
name = "theseus_gui"
# The actual version is set by the theseus-build workflow on tagging
version = "1.0.2-beta13"
version = "1.0.2-beta15"
edition.workspace = true
description = "Axolotl Launcher is a cross-platform Minecraft launcher"
homepage = "https://www.ghs.red"
+2 -2
View File
@@ -126,7 +126,7 @@
"script-src": "'self' 'unsafe-eval' 'wasm-unsafe-eval'",
"worker-src": "'self' blob:",
"frame-src": "https://www.youtube.com https://www.youtube-nocookie.com https://discord.com 'self' http://axolotl-skin.localhost axolotl-skin://localhost https://skin.starlight.cool https://map.starlight.cool",
"frame-src": "https: http://axolotl-skin.localhost axolotl-skin://localhost 'self'",
"media-src": "'self' data: https://*.githubusercontent.com"
},
"csp": {
@@ -136,7 +136,7 @@
"img-src": "https: 'unsafe-inline' 'self' asset: http://asset.localhost http://textures.minecraft.net blob: data:",
"style-src": "'unsafe-inline' 'self'",
"script-src": "'self' 'unsafe-eval' 'wasm-unsafe-eval'",
"frame-src": "https://www.youtube.com https://www.youtube-nocookie.com https://discord.com 'self' axolotl-skin://localhost http://axolotl-skin.localhost https://skin.starlight.cool https://map.starlight.cool",
"frame-src": "https: axolotl-skin://localhost http://axolotl-skin.localhost 'self'",
"media-src": "'self' data: https://*.githubusercontent.com"
}
}
+1 -1
View File
@@ -1,7 +1,7 @@
[package]
name = "theseus"
# The actual version is set by the theseus-build workflow on tagging
version = "1.0.2-beta13"
version = "1.0.2-beta15"
edition.workspace = true
[dependencies]
@@ -216,9 +216,33 @@ async fn modrinth_update_candidates(
.get(&file.id)
.map(Vec::as_slice)
.unwrap_or_default();
// A file whose provider release tracking was invalidated (e.g. by an
// external sync replacing the jar) no longer carries a release id. In
// that case the SHA1 lookup below may resolve to an unrelated project
// or to a different version of the same project, which would surface a
// bogus "update available" right after a sync. Only trust the hash
// lookup when it resolves to the same project we already track.
let recorded_project_id = provider_refs.iter().find_map(|reference| {
match reference {
ContentProviderRef::Modrinth { project_id, .. } => {
Some(project_id.as_str())
}
ContentProviderRef::CurseForge { .. }
| ContentProviderRef::McArchive { .. } => None,
}
});
let Some(current_version_id) =
installed_modrinth_version_id(provider_refs).or_else(|| {
if recorded_project_id == Some(metadata.project_id.as_str()) {
ModrinthVersionId::new(metadata.version_id.to_string()).ok()
} else {
None
}
})
else {
continue;
};
let project_id = ModrinthProjectId::new(metadata.project_id.clone())?;
let current_version_id = installed_modrinth_version_id(provider_refs)
.unwrap_or(ModrinthVersionId::new(metadata.version_id.clone())?);
candidates.push(UpdateCandidate {
entry: context.entries_by_file_id.get(&file.id).cloned(),
file: file.clone(),