From a3f26d424ba28e52c9ad1060011c9dedc2094389 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Thu, 5 Nov 2026 20:59:16 +0800 Subject: [PATCH] =?UTF-8?q?docs(readme):=20r1=20=E5=A4=8D=E5=AE=A1=20P2=20?= =?UTF-8?q?=E4=B8=A4=E6=9D=A1=E6=8E=AA=E8=BE=9E=E4=BF=AE=E6=AD=A3=EF=BC=88?= =?UTF-8?q?dry-run=20=E5=8F=A3=E5=BE=84=E3=80=81=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E7=9A=84=E7=9C=9F=E5=AE=9E=E5=90=AB=E4=B9=89?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit P2-1:`--dry-run` 原来写成「file list, total size, source per file」,比实现强。人类 可读输出是按角色的文件数与字节数 + 合计 + 每类一个源链样本 (crates/cli/src/commands/install/report.rs:161-201),逐文件列源是被刻意否决的设计 (crates/core/src/game/install/plan_view.rs:46-49:「只取每类的首个文件做样本……逐文件 列源选择既没用也没法读」)。整份逐文件清单只在 --json 的 data["files"] 里。 P2-2:「安装是真取消」原来挂在整合包条目下,读者会读成「整合包导入也能真停」。实际 导入取消是界面级的:面板收回 + 结果作废,后台导入跑到底(crates/presenter/src/host/ addon/pack.rs:28-42 模块文档原话「取消是界面级的……core 的 ImportRequest 没有取消 令牌」)。真取消是版本安装那条路(crates/presenter/src/host/dispatch.rs:61-88:在飞 文件就地掐断、段边界收手、不登记实例),已移到「版本管理」条目。 中英两版同步改,未动结构。 --- README.md | 12 ++++++++---- README.zh-CN.md | 8 +++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e327847..351f04e 100644 --- a/README.md +++ b/README.md @@ -35,8 +35,11 @@ gap: the reason text is still raw Chinese straight out of the launch layer (see piece (`crates/app-iced/src/pages/mod.rs`, deviation #8). - **Version management** — a three-column rail (version type / major version / search) over the Mojang version list: release, snapshot and ancient versions, plus loader selection and a loader - version when you install. The CLI can plan the same install without downloading - (`ull install --dry-run`: file list, total size, source per file). + version when you install. Cancelling an installation really stops it — the in-flight file is cut, the + job ends at the next stage boundary, and no instance is registered + (`crates/presenter/src/host/dispatch.rs:61-88`). The CLI can plan the same install without + downloading (`ull install --dry-run`: per-role file counts, total size, and one source-chain sample + per file category; the full file list is in `--json`). - **Launching** — a 10-stage command-line assembly (`crates/core/src/launch/`), per-instance JVM and game arguments, a native-library pass, and a JSONL session record for every run. Process trees are killed as trees, not as one PID. @@ -50,8 +53,9 @@ gap: the reason text is still raw Chinese straight out of the launch layer (see - **Loaders** — Fabric, Quilt, NeoForge and Forge. Forge/NeoForge versions that need the official installer `processors` really run them, with a managed JDK if the machine has none. - **Modpacks** — import a CurseForge manifest, a Modrinth `.mrpack`, or a MultiMC/Prism instance; - export as `.mrpack` or a CurseForge manifest. Installs are cancellable for real, not at the next - file boundary. + export as `.mrpack` or a CurseForge manifest. Cancelling an **import** is interface-level only: the + panel closes and the result is discarded, but the import thread runs to the end, because `core`'s + import request has no cancel token yet (`crates/presenter/src/host/addon/pack.rs:28-42`). - **Content library** — modpacks / mods / resource packs / shaders with keyword, source, version, loader and sort filters, paged results, and one-click *install into this instance*. - **What that page will refuse, and says so on the row** — a modpack cannot be installed *from* the diff --git a/README.zh-CN.md b/README.zh-CN.md index 8b1d78a..5a772f6 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -28,8 +28,9 @@ Unlucky Launcher 是一个用 Rust 写的免费开源 **Minecraft: Java 版**启 stderr 写一行(`crates/app-iced/src/app/update/page_messages.rs`),欠的是实例向导 (`crates/app-iced/src/pages/mod.rs` 偏离 #8)。 - **版本管理**——三栏(版本类型 / 主版本 / 搜索)读 Mojang 版本清单:正式版、快照、远古版;安装时可选 - 加载器与加载器版本。命令行还能只出计划不下载(`ull install --dry-run`:文件清单、总大小、每个文件的 - 选用源)。 + 加载器与加载器版本。取消安装是真停:在下一个段边界收手,在飞的那个文件就地掐断,且不登记实例 + (`crates/presenter/src/host/dispatch.rs:61-88`)。命令行还能只出计划不下载(`--dry-run`:按类的文件数 + 与总大小,人类可读输出里每类给一个源链样本;整份文件清单在 `--json` 里)。 - **启动**——10 阶段命令行组装(`crates/core/src/launch/`)、逐实例 JVM 与游戏参数、原生库解压落位, 每次运行留一份 JSONL 会话记录。进程按**进程树**杀,不是只杀一个 PID。 - **崩溃诊断是真的、也是本地的**——`crates/core/src/diagnose` 采五类信号(退出码、`latest.log`、 @@ -41,7 +42,8 @@ Unlucky Launcher 是一个用 Rust 写的免费开源 **Minecraft: Java 版**启 - **加载器**——Fabric、Quilt、NeoForge、Forge。需要跑官方 installer `processors` 的 Forge/NeoForge 版本 会真跑一遍;机器上没有 Java 时先装一个托管 JDK。 - **整合包**——导入 CurseForge 清单、Modrinth `.mrpack`、MultiMC/Prism 实例;导出为 `.mrpack` 或 - CurseForge 清单。安装是真取消,不是「等这一批文件下完再说」。 + CurseForge 清单。**导入**的取消只是界面级:面板立刻收回、结果作废,但后台那次导入会跑到底——core 的 + 导入请求还没有取消令牌(`crates/presenter/src/host/addon/pack.rs:28-42`)。 - **内容库**——整合包 / Mod / 资源包 / 光影,带关键词、来源、版本、加载器与排序筛选,分页结果, 以及一键**装入这个实例**。 - **这一页会拒绝什么,就写在那一行上**——整合包**不能**从内容库直接装(整合包走上面的导入管线);