Compare commits

...
Author SHA1 Message Date
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
9 changed files with 156 additions and 7 deletions

No files matched your search

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",
+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="`${selectedPlayer.uuid}:${texture.skin ?? ''}:${texture.cape ?? ''}`"
:texture-src="texture.skin ?? ''"
:cape-src="texture.cape"
:variant="skinVariant"
@@ -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
}
+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]