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:
1 parent
2a0493c3eb
commit
a4bd4d2b38
2 files changed
+54
-41
No files matched your search
@@ -10,6 +10,21 @@ Unlucky Launcher (ULL) is a free, open-source Minecraft: Java Edition launcher w
|
||||
WebView. The launcher embeds an AI agent client (chat / configuration / crash diagnosis) and can be
|
||||
attached to other agent tooling as an MCP server.
|
||||
|
||||
## Compliance statement
|
||||
|
||||
- **Microsoft sign-in only.** Authentication is Microsoft OAuth 2.0 device code flow → Xbox Live →
|
||||
XSTS → `api.minecraftservices.com`, using the player's own Microsoft account and their own game
|
||||
entitlement. There is no other account provider.
|
||||
- **Credentials stay on your machine.** Account tokens are stored locally only, are never sent to
|
||||
any server operated by this project, and the AI features cannot read them.
|
||||
- **Playing online requires a Microsoft account.** A local offline profile performs no Microsoft
|
||||
authentication and contacts no Microsoft or Mojang service; it exists for local and
|
||||
isolated-network testing only and is not an online-play path.
|
||||
- ULL does not distribute, mirror, proxy or modify any Minecraft game files.
|
||||
- Not affiliated with Mojang or Microsoft.
|
||||
|
||||
## Highlights
|
||||
|
||||
- **Single-file native binary**: the launcher itself needs no JVM, no WebView and no sidecar
|
||||
runtime. The JDK a game needs is downloaded and managed per instance, not as a launcher
|
||||
dependency.
|
||||
@@ -26,19 +41,6 @@ attached to other agent tooling as an MCP server.
|
||||
downloading) and a YAML rule-based crash diagnosis engine.
|
||||
- **License**: Apache-2.0 © AskaEth (YeiJ).
|
||||
|
||||
## Compliance statement
|
||||
|
||||
- **Microsoft sign-in only.** Authentication is Microsoft OAuth 2.0 device code flow → Xbox Live →
|
||||
XSTS → `api.minecraftservices.com`, using the player's own Microsoft account and their own game
|
||||
entitlement. There is no other account provider.
|
||||
- **Credentials stay on your machine.** Account tokens are stored locally only, are never sent to
|
||||
any server operated by this project, and the AI features cannot read them.
|
||||
- **Offline profiles cannot play online.** A local offline profile performs no Microsoft
|
||||
authentication, contacts no Microsoft/Mojang service, exists for local and isolated-network
|
||||
testing only, and cannot join servers that check accounts against the official service.
|
||||
- ULL does not distribute, mirror, proxy or modify any Minecraft game files.
|
||||
- Not affiliated with Mojang or Microsoft.
|
||||
|
||||
## Status
|
||||
|
||||
Two tracks. They are not the same product yet, so read the headings before downloading anything.
|
||||
@@ -46,12 +48,16 @@ Two tracks. They are not the same product yet, so read the headings before downl
|
||||
### Track A — released: v0.1.0, Slint UI (this is what you can download today)
|
||||
|
||||
- **GitHub Releases `v0.1.0`** (2026-11-01, flagged pre-release): single-file assets for Windows
|
||||
x64 (a bare `.exe`), Linux x64 and macOS (arm64 and x64) `.tar.gz`, plus `SHA256SUMS.txt` and
|
||||
`LICENSE` / `NOTICE` / `README.md` as side assets on Windows.
|
||||
x64 (a bare `.exe`), Linux x64 and macOS (arm64 and x64) `.tar.gz`. Every release also carries
|
||||
`SHA256SUMS.txt` and the `LICENSE` / `NOTICE` / `README.md` texts as separate assets; on Windows
|
||||
those texts sit next to the `.exe` because a bare exe cannot hold them, while the unix archives
|
||||
already contain them.
|
||||
- **UI**: Slint + Metro. This is the shipped GUI — the instance, download, account, Java, log and
|
||||
settings pages drive the real engine (the in-app AI chat panel is a scripted placeholder).
|
||||
- **CLI `ull`** ships in the same release and is fully usable: `instances`, `install`, `launch`,
|
||||
`accounts`, `sessions`, `logs`, `diag`, `config`, `java`, `agent`.
|
||||
- **CLI `ull`** is built from the same tree at the same version and is fully usable — but the
|
||||
`v0.1.0` assets ship only the GUI binary. If you want the CLI, build it yourself:
|
||||
`cargo build --release --bin ull`. Commands: `instances`, `install`, `launch`, `accounts`,
|
||||
`sessions`, `logs`, `diag`, `config`, `java`, `agent`.
|
||||
- Windows ARM64 and Linux ARM64 slots are wired into the release pipeline; the next tagged release
|
||||
builds them. The `v0.1.0` assets predate those two slots.
|
||||
|
||||
@@ -79,7 +85,7 @@ Binaries in the workspace, so you can tell them apart:
|
||||
|--------|-------|-------|
|
||||
| `unlucky-launcher` | `crates/app` (Slint) | released in v0.1.0; still the usable GUI |
|
||||
| `unlucky-launcher-iced` | `crates/app-iced` (iced 0.14) | under construction; skeleton only, not shipped |
|
||||
| `ull` | `crates/cli` | released in v0.1.0; headless and fully usable |
|
||||
| `ull` | `crates/cli` | built from the same tree at the same version; not shipped in the v0.1.0 assets |
|
||||
|
||||
## Module map
|
||||
|
||||
@@ -139,20 +145,22 @@ Rendering switches:
|
||||
CPU path on the Slint build
|
||||
- `unlucky-launcher-iced --software-renderer` forces tiny-skia (`ICED_BACKEND=tiny-skia`);
|
||||
`--screenshot <png>` writes one frame and exits, which is the acceptance channel
|
||||
- Both builds probe the backend at startup and fall back to CPU automatically when no adapter is
|
||||
usable
|
||||
- Both stacks fall back to the CPU path when no usable adapter is there: the Slint build through its
|
||||
own renderer fallback chain, the iced build through its explicit probe
|
||||
|
||||
Dependency license check (optional locally, required in CI):
|
||||
`cargo deny check licenses bans sources`.
|
||||
|
||||
## CI gates
|
||||
|
||||
Every push runs fmt / clippy (warnings are errors) / the full test suite, plus a headless render
|
||||
smoke on Linux and a macOS runtime probe. Nothing here is advisory: a red gate blocks the merge.
|
||||
Every push runs fmt / clippy (warnings are errors) / the full test suite, and the Linux headless
|
||||
render smoke is a hard gate on the same footing: a red result blocks the merge. The macOS runtime
|
||||
probe is not there yet — it only runs on a manual `workflow_dispatch` and its result is recorded,
|
||||
not enforced (`continue-on-error`), until the slot passes a first run on a real runner.
|
||||
|
||||
| Workflow | Content |
|
||||
|----------|---------|
|
||||
| `.github/workflows/ci.yml` | fmt + clippy + test + release build (Windows / Linux matrix); Linux runtime smoke (Xvfb: renders one real frame, then asserts the PNG is not blank); macOS runtime smoke |
|
||||
| `.github/workflows/ci.yml` | fmt + clippy + test + release build (Windows / Linux matrix); Linux runtime smoke (Xvfb: renders one real frame, then asserts the PNG is not blank); macOS runtime probe (manual dispatch only) |
|
||||
| `.github/workflows/guards.yml` | zero-UI guard for `crates/core` (manifest plus `cargo tree`), 400-lines-per-file guard, cargo-deny license and source guard |
|
||||
| `.github/workflows/release.yml` | tag `v*` → per-slot builds → single-file artifacts + `SHA256SUMS.txt` → GitHub Release |
|
||||
|
||||
|
||||
Reference in new issue
Block a user