docs(readme): r1 复审修复 —— 去掉 ull 随包分发的假话、macOS 探针降级为 advisory、离线档案正面陈述、合规段提到第一屏

- P1: ull 与 v0.1.0 同源同版本但发布资产只有 GUI 单文件(make_artifacts.py 只搬 launcher、
  release.yml assets 只 glob unlucky-launcher-*)→ 4 处改为「自行 cargo build --release --bin ull」
- P2-1: macOS 运行期探针 if workflow_dispatch + continue-on-error,属 advisory → 与 Linux 冒烟拆句
- P2-2: 离线档案去掉「不能连校验账户的服务器」这种可反读的限定,标题改「联机游玩必须使用 Microsoft 账户」
- P2-3: 合规声明挪到引言之后、特性 bullet 之前(第一屏可见),文字不变
- nit: 三份合规文本每个 Release 都挂(Windows 因 exe 装不下才并列);Slint 版无显式探测,改为两套栈
  各自回退到 CPU 的准确表述
This commit is contained in:
AskaEth committed 2026-11-01 19:44:07 +08:00
1 parent 2a0493c3eb
commit a4bd4d2b38
2 files changed
+54 -41

No files matched your search

+23 -18
View File
@@ -9,6 +9,18 @@ Unlucky Launcher(ULL)是一个用 Rust 写的免费开源 Minecraft: Java
每个平台就一个原生二进制——没有安装包、没有捆绑运行时、没有 WebView。启动器内置 AI Agent
客户端(对话 / 改配置 / 崩溃诊断),也能作为 MCP server 接进别的 Agent 工具。
## 合规声明
- **只走 Microsoft 正版登录**:认证是 Microsoft OAuth 2.0 device code flow → Xbox Live → XSTS →
`api.minecraftservices.com`,用的是玩家自己的 Microsoft 账户与自己已购的游戏权益,没有别家账户通道。
- **凭据只存本机**:账户令牌只保存在本机,不上传本项目运营的任何服务器,AI 功能也读不到。
- **联机游玩必须使用 Microsoft 账户**:本地离线档案不做 Microsoft 认证、不连任何 Microsoft / Mojang
服务,仅限本地与隔离网络环境的测试,它不是联机游玩的门路。
- 不分发、不镜像、不代理、不修改任何 Minecraft 游戏文件。
- 与 Mojang、Microsoft 无关联。
## 特性
- **单文件原生二进制**:启动器本体不需要 JVM、不需要 WebView、不带旁挂运行时。游戏要的 JDK 由
启动器按实例下载管理,不是启动器的依赖。
- **重写期两套 UI 并存**:已发布版本是 Slint(Royalty-Free 2.0);下一代 UI 是 iced 0.14 +
@@ -21,16 +33,6 @@ Unlucky Launcher(ULL)是一个用 Rust 写的免费开源 Minecraft: Java
- **引擎**:多源下载(健康度评分、镜像、分块传输、边下边算)与 YAML 规则引擎的崩溃诊断。
- **许可**:Apache-2.0 © AskaEth (YeiJ)。
## 合规声明
- **只走 Microsoft 正版登录**:认证是 Microsoft OAuth 2.0 device code flow → Xbox Live → XSTS →
`api.minecraftservices.com`,用的是玩家自己的 Microsoft 账户与自己已购的游戏权益,没有别家账户通道。
- **凭据只存本机**:账户令牌只保存在本机,不上传本项目运营的任何服务器,AI 功能也读不到。
- **离线档案不能联机**:本地离线档案不做 Microsoft 认证、不连 Microsoft / Mojang 任何服务,仅用于
本地与隔离网络环境的测试,无法连接对官方验证服校验账户的服务器。
- 不分发、不镜像、不代理、不修改任何 Minecraft 游戏文件。
- 与 Mojang、Microsoft 无关联。
## 当前状态
两条轨道,还不是同一个东西——看小标题再决定下载什么。
@@ -38,11 +40,13 @@ Unlucky Launcher(ULL)是一个用 Rust 写的免费开源 Minecraft: Java
### 轨道 A —— 已发布:v0.1.0,Slint 版(现在真能下载的就是它)
- **GitHub Releases `v0.1.0`**(2026-11-01,标记为 pre-release):单文件产物覆盖 Windows x64(裸
`.exe`)、Linux x64、macOS(arm64 与 x64)`.tar.gz`,另附 `SHA256SUMS.txt`;Windows 因为「一个 exe
装不下文本」,`LICENSE` / `NOTICE` / `README.md` 作为并列资产随下载走。
`.exe`)、Linux x64、macOS(arm64 与 x64)`.tar.gz`。每个 Release 另挂 `SHA256SUMS.txt` 与
`LICENSE` / `NOTICE` / `README.md` 三份文本——Windows 是「一个 exe 装不下文本」所以并列挂出,
unix 归档里本来就装着。
- **UI**:Slint + Metro。这是已交付的图形界面——实例、下载、账户、Java、日志、设置各页驱动真实引擎
(应用内 AI 对话面板仍是脚本化的占位)。
- **CLI `ull`** 同版本发布、完整可用:`instances`、`install`、`launch`、`accounts`、`sessions`、
- **CLI `ull`** 与 v0.1.0 同源同版本、完整可用,但发布资产里只有 GUI 单文件——要用它请自己构建:
`cargo build --release --bin ull`。命令:`instances`、`install`、`launch`、`accounts`、`sessions`、
`logs`、`diag`、`config`、`java`、`agent`。
- Windows ARM64 与 Linux ARM64 两个槽位已接进发布流水线,随下一个 tag 发布;`v0.1.0` 的资产早于
这两个槽位。
@@ -67,7 +71,7 @@ Unlucky Launcher(ULL)是一个用 Rust 写的免费开源 Minecraft: Java
|--------|-------|------|
| `unlucky-launcher` | `crates/app`(Slint) | v0.1.0 已发布,仍是当前能用的图形界面 |
| `unlucky-launcher-iced` | `crates/app-iced`(iced 0.14) | 施工中,仅骨架,不随发布包分发 |
| `ull` | `crates/cli` | v0.1.0 已发布,headless 完整可用 |
| `ull` | `crates/cli` | 与发布版同源同版本构建;未随 v0.1.0 资产分发 |
## 模块地图
@@ -124,18 +128,19 @@ cargo build --release # 三个 bin 都落在 ta
- `unlucky-launcher --software-renderer`(等价于 `SLINT_BACKEND=winit-software`)强制 Slint 版走 CPU
- `unlucky-launcher-iced --software-renderer` 强制 tiny-skia(`ICED_BACKEND=tiny-skia`);
`--screenshot <png>` 出一帧图后退出,这是验收通道
- 两个版本启动时都会探测后端,拿不到可用适配器就自动降级到 CPU
- 两套栈在没有可用适配器时都会退到 CPU:Slint 版走它自己的渲染器回退链,iced 版走显式探测
依赖许可检查(本地可选,CI 必跑):`cargo deny check licenses bans sources`。
## CI 门禁
每次推送都跑 fmt / clippy(warnings 视为错误)/ 全量测试,另有一条 Linux 无头渲染冒烟与一次
macOS 运行期探测。这些门禁不是摆设:红了就不许合。
每次推送都跑 fmt / clippy(warnings 视为错误)/ 全量测试,Linux 无头渲染冒烟与它们同级、是硬门禁:
红了就不许合。macOS 运行期探针还不算——它只在手动 `workflow_dispatch` 时跑,结果留证据但不作为
流水线结论(`continue-on-error`),直到该槽位在真实 runner 上首跑通过。
| Workflow | 内容 |
|----------|------|
| `.github/workflows/ci.yml` | fmt + clippy + test + release build(Windows / Linux 矩阵);Linux runtime smoke(Xvfb 里真渲染一帧,再断言 PNG 非空白);macOS runtime smoke |
| `.github/workflows/ci.yml` | fmt + clippy + test + release build(Windows / Linux 矩阵);Linux runtime smoke(Xvfb 里真渲染一帧,再断言 PNG 非空白);macOS 运行期探针(仅手动 dispatch) |
| `.github/workflows/guards.yml` | `crates/core` 零 UI 守门(依赖表 + `cargo tree`)、单文件 ≤400 行守门、cargo-deny 许可与来源守门 |
| `.github/workflows/release.yml` | tag `v*` → 分槽位构建 → 单文件产物 + `SHA256SUMS.txt` → GitHub Release |