Commit Graph
601 Commits
Author SHA1 Message Date
Claude f425912bc8 fix(kyber-linux): handle shortcuts.vdf permission error gracefully
If shortcuts.vdf exists but is not writable, attempt chmod 644 before
writing. If that also fails, print a clear instruction and skip the
shortcut step rather than crashing with a Python traceback.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-23 21:58:48 +00:00
Claude 23c1699b05 fix(kyber-linux): install WebView2 via standalone installer, not bootstrapper
The Evergreen bootstrapper (linkid=2124703) requires a second download from
inside the Wine process, which fails in Proton. Switch to the standalone
offline installer (linkid=2135547, ~150 MB) which installs without any
Wine-internal network calls.

Also prefer winetricks if installed — it uses a local cache, handles the
WINEPREFIX env correctly, and is the most reliable method. Fall back to
the standalone download if winetricks is not available.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-23 21:41:54 +00:00
Outis 75cf5b9475 Merge pull request #126 from outis1one/claude/zealous-heisenberg-8ylloi
Claude/zealous heisenberg 8ylloi
2026-06-23 17:38:58 -04:00
Claude 66eb9f9bef fix(kyber-linux): use correct download URL — zip from api.prod.kyber.gg
Replace guessed CDN URL with the real API endpoint:
  https://api.prod.kyber.gg/download/kyber-installer-win64.zip

The download is a zip, so extract the .exe before passing it to Proton.
Requires unzip (standard on Ubuntu).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-23 21:35:28 +00:00
Claude 970d6b1ab2 feat(kyber-linux): auto-download KyberLauncher.exe if not present
Instead of erroring when the installer is missing, attempt to fetch it
automatically: first scrape kyber.gg for a direct .exe link, then fall
back to a known CDN path. If download fails, print the manual instruction
and exit cleanly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-23 21:32:35 +00:00
Outis 6dd2391ab9 Merge pull request #125 from outis1one/claude/zealous-heisenberg-8ylloi
fix(kyber-linux): correct login flow docs — Maxima loopback OAuth, no…
2026-06-23 17:30:05 -04:00
Claude 5f61c7bad2 fix(kyber-linux): correct login flow docs — Maxima loopback OAuth, not WebView2
Kyber uses a PKCE loopback OAuth flow (Maxima): it starts a temporary
HTTP server on 127.0.0.1 and calls cmd /c start to open the EA auth URL
in the system browser. On native Linux, Wine's cmd passes http:// URLs
to xdg-open, which works fine inside Steam's single bwrap layer.

Remove the incorrect claim that WebView2 intercepts qrc:// URIs and is
the only path to completing login. Keep the WebView2 runtime install
(harmless, prevents in-app render errors) but clarify it is not the
login mechanism.

Update end-of-script instructions to describe what the user will actually
see: browser opens EA page, redirects to 127.0.0.1:PORT, tab shows OK or
connection-refused (normal), login completes in Kyber. Add troubleshooting
notes for the two real failure modes: xdg-open not reaching the desktop
(headless/no DISPLAY), and login timeout (loopback server expired).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-23 20:14:06 +00:00
Outis c0a02bae75 Merge pull request #124 from outis1one/claude/happy-euler-co0mgo
wolf: persist RetroArch shaders & overlays; back up bios + shaders/ov…
2026-06-23 11:39:31 -04:00
Claude 71b881889a wolf: persist RetroArch shaders & overlays; back up bios + shaders/overlays
Mount retroarch/shaders and retroarch/overlays from the game drive into
~/.config/retroarch/{shaders,overlays} for both ES-DE and standalone
RetroArch (sibling to the existing cores mount). Anything pulled from the
Online Updater or set in the Quick Menu now persists across sessions and
survives a Wolf/OS reinstall, so a CRT shader or bezel set is configured
once. Dirs are pre-created on the game drive; storage summary and README
updated, including a fallback note to repoint Settings -> Directory if
RetroArch ever writes elsewhere.

gaming-backup: add opt-in snapshots for emulator BIOS (bios/) and the
RetroArch shaders/overlays dirs (cores excluded — re-downloadable). New
BACKUP_BIOS and BACKUP_RA_SHADERS flags wired through the prompts,
backup.conf, summary, and the worker script.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XV8mwKLFwUKt94dAKh3k79
2026-06-23 15:25:56 +00:00
Outis 7a3569799e Merge pull request #123 from outis1one/claude/happy-euler-co0mgo
wolf: make ES-DE usable on first run (RetroArch cores, BIOS mount)
2026-06-23 10:53:01 -04:00
Claude 9778696ac1 wolf: make ES-DE usable on first run (RetroArch cores, BIOS mount)
The GoW es-de/retroarch images ship the RetroArch frontend but NO libretro
cores, and wolf.sh never mounted a BIOS directory. As a result every
libretro-based game (SNES/NES/Genesis/N64/PSX/GBA/...) failed to launch on a
fresh install, and BIOS-dependent systems had nowhere to read firmware from.

Changes (services/wolf.sh):
- Pre-download RetroArch cores at install into <game>/retroarch/cores and
  bind-mount them into the ES-DE and RetroArch apps at
  ~/.config/retroarch/cores (where both ES-DE's bundled config and GoW's
  rom_launcher.sh look). Defaults to the full libretro buildbot set.
- Add a <game>/bios dir mounted at ~/bioses (matches retroarch.cfg's
  system_directory) so PSX/Saturn/Dreamcast/Neo-Geo/etc. find their BIOS.
- New './manage.sh cores [all|common] [force]' to download/refresh cores
  later; wired into help text and bash tab-completion. Install reuses it.
- Also expose emulators/ at ~/Applications so ES-DE's app finder detects the
  Azahar 3DS AppImage.
- Pre-create the new dirs; extend the install summary and README to document
  BIOS placement, the cores command, that controllers auto-configure via SDL
  (no manual input setup), and how to exit a game back to ES-DE.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XV8mwKLFwUKt94dAKh3k79
2026-06-23 14:45:27 +00:00
Outis 6073850fdd Merge pull request #122 from outis1one/claude/zealous-heisenberg-8ylloi
Claude/zealous heisenberg 8ylloi
2026-06-23 10:29:20 -04:00
Claude 351bfc47e8 Add fix-wolf-webview2-userns.sh — finish Kyber-in-Wolf
The WolfSteam app container already runs seccomp=unconfined + apparmor=unconfined
+ SYS_ADMIN, so the WebView2 CLONE_NEWUSER failure is gated at the HOST level by
kernel.apparmor_restrict_unprivileged_userns=1 (default-on since Ubuntu 23.10),
which overrides the unconfined container. This script relaxes that sysctl (and
the legacy unprivileged_userns_clone) persistently, then probes userns creation
on the host and inside the running container so login can complete without
leaving Wolf.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 14:25:56 +00:00
Claude 30df687540 Add setup-kyber-linux.sh for native Linux Steam
Runs Kyber outside Wolf so its embedded WebView2 can initialize without
nested-bwrap blocking CLONE_NEWUSER. Builds the Wine prefix, ensures the
WebView2 Evergreen runtime is installed (the component that intercepts EA's
qrc:// OAuth redirect), registers Kyber as a non-Steam shortcut forced to
Proton Experimental, and notes the Steam Remote Play path for headless boxes.
No fake cmd.exe / Firefox scaffolding needed here.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 14:18:45 +00:00
Outis 2cffcacd04 Merge pull request #121 from outis1one/claude/zealous-heisenberg-8ylloi
Add setup-kyber-wolf.sh for Kyber Launcher in Wolf container
2026-06-23 10:17:41 -04:00
Claude 9573c8d010 Add setup-kyber-wolf.sh for Kyber Launcher in Wolf container
Documents the complete Kyber/EA OAuth investigation: root cause is EA's
qrc:// redirect URI which only Kyber's embedded WebView2 can intercept;
WebView2 cannot initialize inside Wolf due to nested bwrap blocking
CLONE_NEWUSER. Script automates all discovered workarounds (fake cmd.exe,
Firefox profile with network.process.enabled: false) and clearly documents
why the real fix is running Kyber outside the Docker container.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-23 13:41:14 +00:00
Outis 013804ec48 Merge pull request #120 from outis1one/claude/zealous-heisenberg-8ylloi
fix: _steam_home() prefers container that is currently running
2026-06-22 18:41:45 -04:00
Claude d6c0fc2014 fix: _steam_home() prefers container that is currently running
With multiple WolfSteam containers, the previous head -1 pick was
arbitrary. Now matches each Steam state directory against running
container IDs so ge-proton, fix-ea-game, and other commands all
target the active session.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 22:26:56 +00:00
Outis b4d408593d Merge pull request #119 from outis1one/claude/zealous-heisenberg-8ylloi
fix: search all Wolf Steam homes for AppID prefix, not just head -1
2026-06-22 16:41:49 -04:00
Claude dd56f3f837 fix: search all Wolf Steam homes for AppID prefix, not just head -1
With multiple WolfSteam containers running, _steam_home() picks the first
Steam directory found which may not contain the target game's prefix.
_apply_ea_fix now scans all Wolf Steam homes and selects the one that has
the AppID's Proton prefix, falling back to the original behavior if none
match.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 20:40:39 +00:00
Outis bd4f3ee40d Merge pull request #118 from outis1one/claude/zealous-heisenberg-8ylloi
fix: lock config directory so Steam cannot overwrite launch options
2026-06-22 14:12:18 -04:00
Claude 77e40d4955 fix: lock config directory so Steam cannot overwrite launch options
Steam writes localconfig.vdf via atomic rename (write temp + rename over
original). chmod 444 on the file is bypassed by the rename. chmod 555 on
the directory blocks rename-into, preserving the launch option across
Steam restarts.

Also unlocks the directory at the start of step 6 so re-running the
script can update the launch option.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 18:08:57 +00:00
Outis 0f8615e0ec Merge pull request #117 from outis1one/claude/zealous-heisenberg-8ylloi
fix: detect existing EA Desktop install, skip MSI extraction if Link2…
2026-06-22 13:53:56 -04:00
Claude 0c56837505 fix: detect existing EA Desktop install, skip MSI extraction if Link2EA.exe present
On native Linux Steam, EA App self-installs via EAappInstaller.exe on first
SWBF2 launch. Link2EA.exe appears in the Wine prefix without any MSI extraction.
Script now checks for Link2EA.exe first and skips steps 2-3 (MSI locate +
extract) if EA Desktop is already installed, proceeding directly to writing
registry fix files and the launch wrapper.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 17:51:58 +00:00
Outis c90f867e27 Merge pull request #116 from outis1one/claude/zealous-heisenberg-8ylloi
fix: search game files for ea_app.msi, not just drive_c
2026-06-22 13:29:56 -04:00
Claude e33b2f6491 fix: search game files for ea_app.msi, not just drive_c
The MSI is bundled in steamapps/common with the game files. The script
was only checking drive_c (where Steam copies it after a launch), causing
a false "not found" error before the user had launched the game.

Now searches steamapps/common and all of steamapps as fallbacks, reports
which path it found the MSI at. Also remove stale references to the
"Origin is not installed" error which no longer appears.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 17:23:43 +00:00
Outis 1e725e15b1 Merge pull request #115 from outis1one/claude/zealous-heisenberg-8ylloi
feat: auto-install msitools in both SWBF2 setup scripts
2026-06-22 13:02:09 -04:00
Claude 92fd67ec34 feat: auto-install msitools in both SWBF2 setup scripts
Both scripts now detect and install msitools if missing, supporting
apt-get (Debian/Ubuntu), dnf (Fedora), and pacman (Arch). Falls back
to a clear error if the package manager is not recognised.

Remove msitools from manual prerequisites in the doc.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 16:31:42 +00:00
Outis 36413a1c96 Merge pull request #114 from outis1one/claude/zealous-heisenberg-8ylloi
feat: add GE-Proton auto-install to both SWBF2 setup scripts
2026-06-22 12:29:32 -04:00
Claude 7f926c03af feat: add GE-Proton auto-install to both SWBF2 setup scripts
Both scripts now download and install GE-Proton10-34 if not already present:
- setup-swbf2-linux.sh: installs to ~/.steam/root/compatibilitytools.d/
- setup-swbf2-wolf.sh: installs into the WolfSteam container via docker cp + tar

Both pause after install and prompt the user to set GE-Proton in Steam
(Compatibility → Force) before continuing, since that step requires the GUI.

Update docs to reflect GE-Proton is now handled automatically.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 16:15:24 +00:00
Outis ae8c73ff74 Merge pull request #113 from outis1one/claude/zealous-heisenberg-8ylloi
docs: rename wolf-setup to linux-setup, native Linux section first
2026-06-22 12:12:54 -04:00
Claude 1b29873f62 docs: rename wolf-setup to linux-setup, native Linux section first
- Rename SWBF2-2017-wolf-setup.md -> SWBF2-2017-linux-setup.md
- Move Native Linux Steam section before Wolf/Moonlight section
- Update TOC link order to match

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 14:37:46 +00:00
Outis 26f8de7a72 Merge pull request #112 from outis1one/claude/zealous-heisenberg-8ylloi
docs: rewrite SWBF2 setup guide as clean how-to with native Linux sec…
2026-06-22 10:31:09 -04:00
Claude 11a7c6529c docs: rewrite SWBF2 setup guide as clean how-to with native Linux section
- Remove editorial content (EA server speculation, 2005 alternative, opinions)
- Add native Linux Steam section covering all six setup steps
- Add separate key paths tables for Wolf and native
- Add native Linux troubleshooting commands alongside Wolf equivalents
- Rename title to reflect both platforms
- Fresh install table rewritten as factual survival matrix

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 14:21:22 +00:00
Outis 1f10403f5d Merge pull request #111 from outis1one/claude/zealous-heisenberg-8ylloi
docs: add SWBF2 2017 discovery writeup explaining why the fix works
2026-06-22 10:07:06 -04:00
Claude 4324ad7ce2 docs: add SWBF2 2017 discovery writeup explaining why the fix works
Long-form document tracing the actual discovery process: the wrong turns,
the aha moments, and the reasoning behind each step. Covers:

- Why EA is involved in a Steam game at all (link2ea:// architecture)
- JunoConfigureRegistry failure and why DISABLEROLLBACK was a dead end
- msiextract bypass as the actual solution
- Why direct system.reg edits don't survive reboots (wineserver ownership)
- The launch wrapper approach for registry persistence
- RPC_S_SERVER_UNAVAILABLE and EALocalHostSvc
- Wolf-specific bwrap capabilities mismatch
- localconfig.vdf atomic rename problem and chmod 555 fix

Written for sharing — no identifying information, explains the "why"
for each fix so readers can adapt if EA changes their MSI structure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 13:26:11 +00:00
Outis 7affc4c50e Merge pull request #110 from outis1one/claude/zealous-heisenberg-8ylloi
feat: add standalone SWBF2 2017 setup scripts for Wolf and native Lin…
2026-06-22 09:05:56 -04:00
Claude c6d58a7ccd feat: add standalone SWBF2 2017 setup scripts for Wolf and native Linux Steam
Two self-contained scripts for getting SWBF2 (2017, AppID 1237950) working
with GE-Proton on Linux — no dependency on the ubuntu-post-install framework.

setup-swbf2-wolf.sh  — for Wolf/Games-on-Whales + Moonlight streaming
setup-swbf2-linux.sh — for native Linux Steam (no Docker)

Both implement the same core fix:
- msiextract bypass for JunoConfigureRegistry Wine incompatibility
- EA Desktop files copied into Wine prefix from extracted MSI
- link2ea_fix.reg + ea_services.reg written to drive_c
- Launch wrapper that imports .reg files via Proton on every launch
  (direct system.reg edits are overwritten by wineserver on shutdown)

Wolf version also handles Docker cp, container paths, STEAM_UNIX_SOCKET,
and localconfig.vdf directory locking inside the Wolf state folder.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 12:59:49 +00:00
Outis 94fe961b72 Merge pull request #109 from outis1one/claude/zealous-heisenberg-8ylloi
Claude/zealous heisenberg 8ylloi
2026-06-22 08:48:43 -04:00
Claude 8084276738 feat(wolf): add setup-swbf2 command for full SWBF2 2017 Wolf/Moonlight setup
Automates the complete working solution for SWBF2 (AppID 1237950) on Wolf:

1. Extracts EA Desktop from ea_app.msi using msiextract on the host,
   bypassing JunoConfigureRegistry Wine incompatibility that causes MSI rollback
2. Copies EA Desktop files (Link2EA.exe, EALocalHostSvc.exe, etc.) into the
   Wine prefix at the versioned path with symlink
3. Writes link2ea_fix.reg and ea_services.reg into drive_c so they persist
   across Wine prefix operations
4. Installs a launch wrapper (/home/retro/ea_install.sh) that runs regedit
   via Steam's sniper+GE-Proton launch chain — required because direct edits
   to system.reg are overwritten when wineserver flushes on shutdown
5. Sets LaunchOptions for AppID 1237950 in localconfig.vdf and locks the
   config directory (chmod 555) to prevent Steam overwriting it via
   atomic rename on shutdown

Run after: Steam open in Moonlight, GE-Proton set, SWBF2 launched once
(triggers Wine prefix + ea_app.msi creation), EA account linked at ea.com.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 12:38:05 +00:00
Claude b756e7eedb docs: rewrite SWBF2-2017 guide with working msiextract + wrapper solution
Complete rewrite reflecting the actual working setup:
- msiextract on host bypasses JunoConfigureRegistry Wine incompatibility
- Wrapper script imports registry fixes via regedit through Steam's launch chain
- chmod 555 on config dir prevents Steam overwriting localconfig.vdf
- Honest fresh-install assessment table (what's automated vs one-time manual)
- Troubleshooting section covering all errors encountered
- Key paths reference table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 12:35:14 +00:00
Claude 5cff764d3b docs: add EA auth dependency context, login process, and longevity notes
Documents the EA account requirement, first-time login flow, credential
caching for machine transfers, community server options if EA shuts down,
and the SWBF2 2005 alternative for a launcher-free experience.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 05:02:19 +00:00
Claude 6b385e62ba docs: update SWBF2 guide with direct-exe bypass and Origin registry spoof
Revised approach: skip link2ea:// and EA App account requirement entirely.
Launch starwarsbattlefrontii.exe directly via the wrapper, spoof Origin
registry entries so the game's built-in launcher check passes. Documents
what doesn't work and why (msiexec/bwrap/EA account issues).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 04:25:26 +00:00
Outis 8114572eea Merge pull request #108 from outis1one/claude/zealous-heisenberg-8ylloi
docs: add SWBF2 2017 Wolf/Moonlight setup guide
2026-06-21 23:59:57 -04:00
Claude 0202515163 docs: add SWBF2 2017 Wolf/Moonlight setup guide
Documents the EA App installation workaround for Star Wars Battlefront II
(2017) running under Wolf/WolfSteam with GE-Proton10-34. Covers the bwrap
capability problem, Steam launch wrapper trick, msiextract bypass for the
JunoConfigureRegistry Wine incompatibility, and correct EA Desktop file layout.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-22 03:56:56 +00:00
Outis afa6145784 Merge pull request #107 from outis1one/claude/zealous-heisenberg-8ylloi
fix(wolf): use wineserver -f as anchor instead of cmd.exe timeout
2026-06-21 15:22:22 -04:00
Claude b031d7e7d4 fix(wolf): use wineserver -f as anchor instead of cmd.exe timeout
wine cmd.exe /c "timeout /t 900 > nul" failed silently (docker exec -d
hides errors), leaving no anchor process and letting wineserver die as
soon as EAappInstaller.exe exited.

Replace with wineserver -f (foreground mode) which keeps the server
alive unconditionally until explicitly killed with wineserver -k.
This is the correct primitive for holding a Wine session open.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-21 19:21:40 +00:00
Outis 7802e7eb70 Merge pull request #106 from outis1one/claude/zealous-heisenberg-8ylloi
fix(wolf): keep wineserver alive during EA App install
2026-06-21 15:15:29 -04:00
Claude 70a7b83cc4 fix(wolf): keep wineserver alive during EA App install
EAappInstaller.exe is a WiX/Burn bootstrapper that spawns the real
installer as a background Wine process and exits immediately. When the
foreground wine process exited, wineserver shut down and killed the
background installer before it could write any files.

Fix: launch a cmd.exe/timeout anchor before running the installer so
the shared wineserver stays up while background installer processes run.
Kill the anchor (wineserver -k) after EADesktop.exe is detected or the
15-minute timeout expires.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
2026-06-21 19:13:59 +00:00
Outis 5c0cad20b1 Merge pull request #105 from outis1one/claude/zealous-heisenberg-8ylloi
wolf: fix install-ea-app — correct installer path, clear fake Install…
2026-06-21 15:03:16 -04:00