Commit 895fa2b
authored
fix(magos-modificus): search all Steam libraries for the compatdata prefix (#21)
## What
Small follow-up fix to the Phase 1 Steam discovery library (#18): the
compatdata (Proton prefix) resolution now searches **all Steam
libraries**, not just the main install.
## Why
A launch-smoke-test on a real Linux machine surfaced this: the user's
Darktide compatdata lives at `/games/steamapps/compatdata/1361210/` —
under a **Steam library drive**, not the main Steam install. Steam
places the prefix on whichever drive it chose at install time, which is
frequently a library. The previous logic checked only
`<SteamInstallPath>/steamapps/compatdata/<appid>/`, so it reported
`CompatdataPath: (missing)` → `DiscoveryIncomplete`, blocking the
launch.
## The fix
`SteamService.FindCompatdata` now probes candidates across **the main
install + each library** (main install first for prior-behavior
preservation, then libraries in `libraryfolders.vdf` order, deduped),
first existing wins. The discovery already parsed `libraryfolders.vdf`
for the Darktide search — reuses that list.
`DiscoveryResult.CompatdataPath` stays a single string — **no interface
change**. Windows discovery + Proton/Darktide resolution untouched.
## Test
New `Compatdata_in_secondary_library_is_found` — fixtures a secondary
library with the compatdata (not under the main install) → asserts
`Status: Complete` + the correct library path. Existing
main-install-compatdata test still passes (main install probed first).
## Verification
- **coder** — impl + test; `dotnet build` 0/0; `dotnet test` green
(Steam 39 = 38 + 1; full main suite 117). No new deps.
- **Light review path** — this is a one-method targeted fix with a clear
test; skipping the formal qa/code-review cycle. CI gates Win + Linux on
this PR; the diff is small for direct review.
- After merge: re-run `dotnet run --project
tests/Magos.Modificus.EnginseerClient.Tests -- discover` → `Status:
Complete` (compatdata found under the library).
Builds on merged #18 (Steam). Independent of #20 (Enginseer-client,
still open).1 parent 781d65c commit 895fa2b
2 files changed
Lines changed: 63 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
72 | | - | |
| 72 | + | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| |||
202 | 202 | | |
203 | 203 | | |
204 | 204 | | |
205 | | - | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
206 | 218 | | |
207 | | - | |
208 | | - | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
209 | 235 | | |
210 | | - | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
211 | 247 | | |
212 | 248 | | |
213 | 249 | | |
| |||
Lines changed: 22 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
118 | 140 | | |
119 | 141 | | |
120 | 142 | | |
| |||
0 commit comments