feat(python/launcher): host 起動修正 + prefix/proton 設定#66
Merged
Conversation
ホストの $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>
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景
resoio launchはコンテナでは動くが、ホストの$HOME配下 Steam install では--vanillaでも renderer が起動せず engine がハングしていた。根本原因: umu/Proton の game-drive 機能が
$HOMEを Wine ドライブ文字にマップし、起動 cwd (= install_dir) がZ:以外のドライブに乗る。その結果 renderer exe //dev/shmIPC の絶対 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
$HOMEinstall の game-drive ハングをPROTON_SET_GAME_DRIVE=0で修正。GAMEID=umu-default/PROTONPATH=GE-Protonを既定化 (umu-run は GAMEID 必須、GE-Proton はスプラッシュ描画崩れ回避の規約)。--bepinex-targetとして渡り BepisLoader が "not an absolute path" で落ちる問題を_resolve_mod_pathの abspath で修正。Added
resoio launch --prefix(WINEPREFIX) /--proton-path(PROTONPATH) で Wine prefix と Proton を設定可能に。撤回 (旧版から削除)
_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/pyrightstrict 0 errors。PROTON_SET_GAME_DRIVE=0で$HOMEinstall から engine + renderer 起動を確認済み。補足
just runは CI に委ねる。[Unreleased]に記載 (次 0.7.0 想定)。🤖 Generated with Claude Code