Skip to content

feat(python/launcher): host 起動修正 + prefix/proton 設定#66

Merged
Geson-anko merged 3 commits into
mainfrom
feature/20260623/host-launch-multi-instance
Jun 23, 2026
Merged

feat(python/launcher): host 起動修正 + prefix/proton 設定#66
Geson-anko merged 3 commits into
mainfrom
feature/20260623/host-launch-multi-instance

Conversation

@Geson-anko

@Geson-anko Geson-anko commented Jun 23, 2026

Copy link
Copy Markdown
Member

背景

resoio launch はコンテナでは動くが、ホストの $HOME 配下 Steam install では --vanilla でも renderer が起動せず engine がハングしていた。

根本原因: umu/Proton の game-drive 機能が $HOME を Wine ドライブ文字にマップし、起動 cwd (= install_dir) が Z: 以外のドライブに乗る。その結果 renderer exe / /dev/shm IPC の絶対 Unix パスが誤解決され、renderer が起動せず engine が無限待機する。コンテナは install が /opt/resonite (= $HOME=/home/dev の外) なので発症しなかった。

確定修正 (GE-Proton / UMU-Proton 両方で実機確認): 起動 env に PROTON_SET_GAME_DRIVE=0 を渡すと dosdevices が c: / z: のみになり (Steam prefix と同レイアウト)、$HOME 配下 install でも renderer が即起動する。

変更

Fixed

  • ホスト $HOME install の game-drive ハングを PROTON_SET_GAME_DRIVE=0 で修正。GAMEID=umu-default / PROTONPATH=GE-Proton を既定化 (umu-run は GAMEID 必須、GE-Proton はスプラッシュ描画崩れ回避の規約)。
  • 相対 mod profile が BepInEx に相対 --bepinex-target として渡り BepisLoader が "not an absolute path" で落ちる問題を _resolve_mod_path の abspath で修正。

Added

  • resoio launch --prefix (WINEPREFIX) / --proton-path (PROTONPATH) で Wine prefix と Proton を設定可能に。

撤回 (旧版から削除)

  • 当初含めていた多重インスタンス対応 (already-running ガード撤去 + PID 集合差分 _wait_for_new + terminate --all / terminate_all) は、既に起動済みの状態では正しく動かないことが判明したため撤回。launch は従来どおり二重起動を拒否し、単一インスタンス前提 (_wait_for_single) に戻した。本 PR は prefix/proton 設定 + umu-run バグ修正のみに絞る。

テスト・検証

  • _build_command の env 既定 / 優先順位 (PROTON_SET_GAME_DRIVE 強制 0 の回帰防止含む)・相対 profile 絶対化・already-running ガード・CLI フラグ配線を real OS プロセスで pin。
  • コンテナ内検証: pytest (python 全体) 968 passed / ruff check / ruff format --check / pyright strict 0 errors
  • 実機 e2e (ホスト): PROTON_SET_GAME_DRIVE=0$HOME install から engine + renderer 起動を確認済み。

補足

  • 本変更は Python + docs のみ (proto / C# 不変)。完全な just run は CI に委ねる。
  • CHANGELOG は [Unreleased] に記載 (次 0.7.0 想定)。

🤖 Generated with Claude Code

Geson-anko and others added 3 commits June 23, 2026 15:12
ホストの $HOME 配下 install で resoio launch が renderer を起動できず engine が
ハングする問題を修正しつつ、起動の柔軟性と多重インスタンスを追加する。

- fix: umu/Proton の game-drive が $HOME を Wine ドライブ文字にマップし、cwd
  (=install_dir) が Z: 以外に乗って renderer の絶対 Unix パス (renderer exe /
  /dev/shm IPC) が誤解決されハングしていた。起動 env に PROTON_SET_GAME_DRIVE=0 を
  常時付与 (dosdevices が c:/z: のみになり Steam prefix と同レイアウト) し、
  GAMEID=umu-default / PROTONPATH=GE-Proton を既定化。コンテナは install が $HOME
  外なので無影響。
- fix: 相対 mod profile が BepInEx に相対 --bepinex-target として渡り BepisLoader が
  "not an absolute path" で落ちる問題を _resolve_mod_path の abspath で修正。
- feat: resoio launch に --prefix (WINEPREFIX) / --proton-path (PROTONPATH) を追加。
- feat: 多重インスタンス対応。already-running ガードを撤去し、launch 前後の PID 集合
  差分 (_wait_for_new) で本 launch が起動した engine/renderer を特定する。
- feat: resoio terminate --all で全インスタンスを一括停止 (terminate_all を追加)。

テストは real OS プロセスで env 既定・優先順位 (PROTON_SET_GAME_DRIVE 強制 0 の
回帰防止含む)・相対 profile 絶対化・_wait_for_new・terminate_all・CLI フラグ配線を pin。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- CHANGELOG に [Unreleased] (host launch hang 修正、相対 profile 絶対化、
  --prefix/--proton-path、多重インスタンス、terminate --all) を追加。
- docs/cli.md の launch/terminate 行・散文・例を更新 (「refuses a second
  instance」を撤回し多重対応に)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
既起動時に launch が失敗する問題が判明したため、PR #66 で入れた
多重起動/終了サポートを撤回し、prefix/proton 設定と umu-run バグ修正
(PROTON_SET_GAME_DRIVE=0 / GAMEID / 相対 profile abspath 化) のみ残す。

- launch の already-running ガードを復元 (二重起動を再び拒否)
- _wait_for_new (PID 集合差分) を _wait_for_single に戻す
- terminate_all() と `terminate --all` を削除
- 関連テスト・docs・CHANGELOG から多重インスタンス記述を撤回

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Geson-anko Geson-anko changed the title feat(python/launcher): host 起動修正 + prefix/proton 設定 + 多重インスタンス対応 feat(python/launcher): host 起動修正 + prefix/proton 設定 Jun 23, 2026
@Geson-anko
Geson-anko merged commit 59d67a7 into main Jun 23, 2026
5 checks passed
@Geson-anko
Geson-anko deleted the feature/20260623/host-launch-multi-instance branch June 23, 2026 23:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant