复审 r1 的两条 P2,都只动文档(`packaging/release-notes.md`、`NOTICE`、`packaging/README.md`)。
P2-1(发版阻断项):`packaging/release-notes.md` 是 Release body 模板,`NOTICE` 装在每个 tar.gz 里,
两者都仍自称 Slint 版:
- release notes:首段 `Slint + Metro UI` → `iced 0.14 + Material 3 Expressive UI`;「No GPU」小节从
femtovg / `SLINT_BACKEND=winit-software` 改成 wgpu + tiny-skia / `ICED_BACKEND=tiny-skia`;
删掉页面的 `Made with Slint` 徽章声明,换成「本版所有资产都由 iced 构建、不含 Slint 代码;
Slint 版源码仅作历史参考、不构建不发布;RF-2.0 徽章义务跟着链接 Slint 的二进制走,本版没有」。
- NOTICE:第 1 条标题改「Slint —— 历史源码,不随任何产物分发」,正文明确「当前 GUI 框架是 iced、
二进制不含 Slint 代码;crates/app 已被 workspace exclude,不参与构建/测试/发布」;RF-2.0 义务改成
「对当前产物不适用,仍挂在 v0.1.0 那批已发布资产上」。**没有整条删除**:仓库里确实还有基于 Slint
写的历史源码,且将来若重新链接 Slint 义务要恢复,留记录比删掉更安全——依据写进报告。
另在第 3 条补一句「当前 GUI 框架:iced 0.14(MIT)+ winit / wgpu / tiny-skia」。
P2-2:`packaging/README.md`(净零行,仍 399 ≤400)
- §4 的 `libGL/libEGL` 说明从 femtovg 改成 wgpu 的 GL/EGL 后端 + tiny-skia 软渲染,并加一段
「M118 口径」:那张表与 DT_NEEDED 结论是 Slint 版实测,iced 版**尚未重测**,按「同一族库、细节待验」读。
- §11 的本地复跑命令补限定语:`linux-smoke-docker.sh` 仍编/跑 Slint 版 bin,现在会失败;在它换成
`unlucky-launcher-iced` 之前,本地照 ci.yml 的 runtime-smoke 三步手跑。段落未删。
证据:`git diff --name-only` 仅这三份;release-notes 的 `{{VERSION}}`(15) / `{{SUMS}}`(1) 占位符仍在,
模板渲染走查通过;`packaging/README.md` 399 行(守卫上限 400)。另按复审要求二次单跑
`cargo test -p unlucky-core --test launch pipeline_records_crash_report_artifact` → ok(0.16s)。
5.9 KiB
Unlucky Launcher {{VERSION}}
Rust-native single-file Minecraft launcher: iced 0.14 + Material 3 Expressive UI, built-in AI agent (chat / config edits / crash diagnosis) and an MCP server other agent tools can attach to. No WebView, no bundled runtime, no JRE download needed to start the launcher itself.
Downloads
| Platform | Asset | Notes |
|---|---|---|
| Windows 10/11 x64 | unlucky-launcher-{{VERSION}}-windows-x64.exe |
single exe, double-click to run |
| Windows 11 ARM64 | unlucky-launcher-{{VERSION}}-windows-arm64.exe |
single exe, runs natively on ARM64 Windows |
| Linux x64 (X11/Wayland) | unlucky-launcher-{{VERSION}}-linux-x64.tar.gz |
single binary inside, no installer |
| Linux arm64 (X11/Wayland) | unlucky-launcher-{{VERSION}}-linux-arm64.tar.gz |
single binary inside; needs glibc 2.35+ |
| macOS 12+ Apple Silicon | unlucky-launcher-{{VERSION}}-macos-arm64.tar.gz |
single binary inside, no installer |
| macOS 12+ Intel | unlucky-launcher-{{VERSION}}-macos-x64.tar.gz |
single binary inside, no installer |
LICENSE, NOTICE and README.md ship in every archive; on Windows they are attached to
this release next to the .exe (a lone exe cannot carry them), so the license terms travel
with the download on every platform.
Every slot also ships the command line as its own small asset — ull-{{VERSION}}-<slot>
(.exe on Windows):
chmod +x ull-{{VERSION}}-linux-x64 # Release 资产不带可执行位,先补上
./ull-{{VERSION}}-linux-x64 instances list # servers / CI / Termux: no graphics stack needed
unlucky-launcher instances list # desktops: the GUI binary answers the same commands
ull runs instances, install, launch, accounts, sessions, logs, diag, config,
java and agent, and links no graphics library at all. The GUI binary accepts the same set
before it ever opens a window, so on a machine with a desktop you do not need ull.
Support matrix
| Platform | Level | Runtime requirements |
|---|---|---|
| Windows 10/11 x64 | first class | nothing beyond the OS (UCRT is part of Win10+) |
| Windows 11 ARM64 | first class (launcher artifact) | nothing extra; launcher runs natively, the game itself runs through the OS x64 emulation layer with an x64 JDK |
| macOS 12+ (arm64 / x64) | first class | nothing; unsigned build, see Gatekeeper note |
| Linux x64, X11 | first class | libxkbcommon, fontconfig, libGL (or software renderer), libxcb |
| Linux x64, Wayland | supported | wayland-client, libxkbcommon, plus the X11 set for XWayland apps |
| Linux arm64, X11 | first class | glibc 2.35+ (built on ubuntu-22.04-arm, same floor as x64), libxkbcommon, fontconfig, libGL, libxcb |
| Linux arm64, Wayland | supported | the above plus wayland-client |
| Windows 8.1/8/7 | unsupported | baseline was raised to Win10 (decision D21) |
| Android — Termux + X11 | experimental, not promised | CLI only (the ull asset, or build from source), GUI unverified; not part of this release matrix |
Both arm64 rows are formally released slots (the assets ship in this release and in
SHA256SUMS.txt), not the experimental Termux path: Linux arm64 is built and smoke-tested on a
native ARM64 runner, Windows ARM64 is cross-built with the same static-CRT gate as x64.
Install
Windows — put the .exe anywhere and run it (pick -windows-arm64.exe on ARM64 Windows,
-windows-x64.exe everywhere else). Portable data lives next to the exe when a
portable.marker file is present, otherwise under %APPDATA%.
Linux
tar -xzf unlucky-launcher-{{VERSION}}-linux-x64.tar.gz # use linux-arm64 on aarch64
cd unlucky-launcher-{{VERSION}}-linux-x64 # ditto
chmod +x unlucky-launcher && ./unlucky-launcher
macOS
tar -xzf unlucky-launcher-{{VERSION}}-macos-arm64.tar.gz
cd unlucky-launcher-{{VERSION}}-macos-arm64
xattr -d com.apple.quarantine unlucky-launcher # unsigned build, Gatekeeper quarantine
chmod +x unlucky-launcher && ./unlucky-launcher
No GPU? Software renderer
The UI renders through wgpu (GPU) and falls back to the tiny-skia CPU rasteriser when no usable
adapter is present. Force the CPU path on any machine with:
unlucky-launcher --software-renderer # or: ICED_BACKEND=tiny-skia unlucky-launcher
Verify the download
# Linux / macOS
sha256sum -c SHA256SUMS.txt --ignore-missing
# Windows (PowerShell)
Get-FileHash .\unlucky-launcher-{{VERSION}}-windows-x64.exe -Algorithm SHA256
Checksums
{{SUMS}}
Known limitations of this build
- Microsoft (MSA) account login depends on a Mojang app-id whitelist that is still pending; until it is granted, use offline accounts or authlib-injector (the 403 is reported with a readable diagnostic instead of a silent failure).
- Binaries are not code-signed / notarized yet: Windows SmartScreen and macOS Gatekeeper warn on first launch. Checksums above are the integrity reference for now.
- macOS ships the bare binary (single-file promise), not a
.appbundle: no Dock icon or Finder double-click — launch it from a terminal.
License
Apache-2.0. Third-party notices are in NOTICE. Unlucky Launcher is not affiliated with Mojang or
Microsoft; it does not ship game files.
UI framework in this build
Every asset in this release is built from the iced UI (crates/app-iced, iced 0.14, MIT) — no Slint
code is linked into it. The earlier Slint UI (crates/app) stays in the repository as historical
source only: excluded from the cargo workspace, not built, not part of any asset here and not part of
the release matrix. It did ship in the previous v0.1.0 release; that release's Slint Royalty-Free
2.0 attribution remains where it was published, and no asset in this build carries that obligation.
There is deliberately no "Made with Slint" badge on this page: the obligation follows a Slint-linked
binary, and this release has none.