You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/SOLUTION_SUMMARY.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,10 @@
7
7
> support explicit active takeover with `games.connect {"forceTakeover": true}`.
8
8
> Current Steam bridge games should use `SteamManaged`, which resolves the
9
9
> installed Steam app executable and launches it directly with GABP environment.
10
-
> `SteamAppId` remains as a legacy launcher URL mode.
10
+
> `SteamAppId` remains as a legacy launcher URL mode. If a platform-managed
11
+
> launch still drops the bridge environment before the final process starts,
12
+
> `games_status` reports `process-bridge-environment-missing`; use `DirectPath`
13
+
> or `CustomCommand` for that setup.
11
14
12
15
## Problem Analysis
13
16
@@ -150,7 +153,7 @@ type ProcessError struct {
150
153
- ✅ **Serialized starting**: Only one process starting at a time
151
154
- ✅ **Error handling**: Structured errors with context
152
155
- ✅ **Steam/Epic games**: Proper legacy launcher vs directly managed process distinction
153
-
- ✅ **SteamManaged games**: Steam apps can be launched as resolved executables with deterministic GABP environment injection
156
+
- ✅ **SteamManaged games**: Steam apps can be launched as resolved executables with bridge environment injection, with status diagnostics when the final process does not inherit it
154
157
155
158
**Status Reporting Examples**:
156
159
-**With tracking**: "running (GABS is tracking the game process)"
t.Fatalf("expected connect to fail, got: %s", connectText)
290
+
}
291
+
if!strings.Contains(connectText, "running process environment is readable") ||!strings.Contains(connectText, "does not contain GABP_SERVER_PORT/GABP_TOKEN") {
warnings=append(warnings, "Could not verify GABP environment on the real game process; SteamAppId launcher URL mode can reuse stale environment from an already-running launcher. Run 'gabs games repair "+game.ID+"' to switch to managed Steam launch.")
76
+
} elseifgame.LaunchMode=="SteamManaged" {
77
+
warnings=append(warnings, "Could not verify GABP environment on the real game process; Steam-managed launch can still lose environment variables if the platform relaunches the app. Use DirectPath or CustomCommand when the final game process does not inherit the bridge environment.")
70
78
} else {
71
79
warnings=append(warnings, fmt.Sprintf("Could not verify GABP environment on the real game process; %s launchers can reuse stale environment from an already-running launcher.", game.LaunchMode))
mcpNextAction("games_show", map[string]interface{}{"gameId": game.ID}, "Review the launch configuration; the running process is visible but does not expose an attachable GABP environment."),
returnfmt.Sprintf("The running process environment is readable, but GABS_GAME_ID is %q instead of %q. GABS will not attach using cached endpoint state.", processEnv.GameID, game.ID)
164
+
}
165
+
ifprocessEnv.Present {
166
+
return"The running process environment is readable, but it does not contain a complete GABP_SERVER_PORT/GABP_TOKEN pair. GABS will not attach using cached endpoint state."
167
+
}
168
+
return"The running process environment is readable, but it does not contain GABP_SERVER_PORT/GABP_TOKEN. The game was not launched with the GABS bridge environment, or a launcher dropped it before the final process started."
0 commit comments