docs: Campaign LA Linux posture — full launcher stack Linux-tested; GUI waits for Slice L
User decision 2026-08-14: everything the launcher does ships Linux-tested in this campaign (launcher UI, install/update with manual DAT picker, headless launches with plugins + login commands, probe, per-slice Linux test runs, Linux connected-gate section at LA11). GUI client launches stay Windows-only until Slice L resumes later; the launcher renders GUI modes disabled on Linux with an explicit note, and the host-agnostic session-config contract means Slice L lights them up with no launcher changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
9b0bb25581
commit
7f24af1a37
2 changed files with 27 additions and 0 deletions
|
|
@ -51,6 +51,32 @@ Parallelism guide: LA3/LA4 (launcher side) proceed alongside LA5–LA8 (client
|
|||
side) — different assemblies, no shared files. LA9/LA10 close the launcher
|
||||
side; LA11 closes the campaign.
|
||||
|
||||
## Linux posture (binding — user decision 2026-08-14)
|
||||
|
||||
Everything the launcher does must WORK ON LINUX in this campaign, except
|
||||
GUI client launches: the Linux graphical client is Slice L, parked at L1,
|
||||
resuming later ("ok we will do it later"). Concretely:
|
||||
|
||||
- **Linux-shipping in LA:** the Avalonia launcher UI, profile CRUD +
|
||||
0600-permission file, installer (manual DAT picker — the auto-detect
|
||||
paths are Windows-only; `acdream-bake` is GL-free and runs on Linux),
|
||||
updater (staged swap; Linux can replace a running binary but keep the
|
||||
same staged-atomic flow), headless launches with plugins + login
|
||||
commands, and the character probe.
|
||||
- **Launcher UX on Linux:** the `gui` / `guiSelect` launch modes render
|
||||
disabled with an explicit "requires the Linux graphical client (Slice
|
||||
L)" note — never a silent failure.
|
||||
- **Per-slice enforcement:** every slice touching Launcher.Core, Headless,
|
||||
Runtime, Bake, or Platform runs its test projects on Linux (native
|
||||
Ubuntu or WSL, matching the K-slice practice) before the slice is DONE;
|
||||
LA4/LA9/LA10 additionally prove a real `linux-x64` self-contained
|
||||
publish. LA11's connected-gate script gets a Linux section: launcher on
|
||||
Ubuntu doing CRUD, probe, headless launch with plugin + login commands,
|
||||
first-run install with a manual DAT path, and an update swap.
|
||||
- When Slice L later ships, the launcher's Linux GUI modes light up with
|
||||
NO launcher changes (the session-config contract is host-agnostic) —
|
||||
that expectation is part of LA's design acceptance.
|
||||
|
||||
## LA0 — `AcDream.Platform` extraction
|
||||
|
||||
New BCL-only project `src/AcDream.Platform/` holding `ApplicationPathSet` +
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ Decided this session (2026-08-14):
|
|||
| Launcher ↔ client coupling | **Approach A: file-contract orchestrator** (config in, status events out; no game-protocol code in the launcher) |
|
||||
| Update feed | **GitHub Releases** (manifest.json + per-RID zips as release assets) |
|
||||
| Profile editing | **Full CRUD in the launcher UI** — add/edit/remove servers, accounts, passwords, per-character settings. The JSON file is storage (hand-editable as a bonus), never the required interface |
|
||||
| Linux scope | **Full launcher stack Linux-tested in LA** (launcher UI, install/update, headless + plugins + probe); GUI launches stay Windows-only until Slice L resumes later (user 2026-08-14). Launcher disables GUI modes on Linux with an explicit note |
|
||||
| Character enumeration | **On-demand probe**: launcher spawns the headless host in a probe mode (connect → `CharacterList` → status event → graceful disconnect BEFORE entering world → exit) and folds the roster into the profile store |
|
||||
|
||||
Rejected: the launcher itself embedding Runtime/Core.Net to speak the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue