feat(ai): resolve Steam app IDs from the library, don't make the model guess — 0.29.0
The model guessed "Rainbow Six Siege" for appID 2694490 (Path of Exile 2). We already know the names locally, so ground it: steam.appid_names() maps appid→name from the scanned library, and ai.build_prompt scans the text for app IDs and injects a resolved glossary. Only locally-known IDs are listed; no network, no fine-tuning. Tests + verified live (2694490 = Path of Exile 2). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -62,6 +62,23 @@ class PromptTests(unittest.TestCase):
|
||||
text = ai.format_findings([F()])
|
||||
self.assertIn("[WARN] GPU: Hot — 92C", text)
|
||||
|
||||
def test_appid_glossary_resolves_known_ids(self):
|
||||
from rigdoctor.core import steam
|
||||
with mock.patch.object(steam, "appid_names", return_value={"2694490": "Path of Exile 2"}):
|
||||
glossary = ai.appid_glossary("Steam log: removed AppID 2694490 ... pid 130544")
|
||||
self.assertIn("2694490 = Path of Exile 2", glossary)
|
||||
|
||||
def test_appid_glossary_ignores_unknown_ids(self):
|
||||
from rigdoctor.core import steam
|
||||
with mock.patch.object(steam, "appid_names", return_value={"570": "Dota 2"}):
|
||||
self.assertEqual(ai.appid_glossary("pid 130544 used 8192 MiB"), "") # not in library
|
||||
|
||||
def test_build_prompt_includes_glossary(self):
|
||||
from rigdoctor.core import steam
|
||||
with mock.patch.object(steam, "appid_names", return_value={"2694490": "Path of Exile 2"}):
|
||||
prompt = ai.build_prompt("AppID 2694490 launched")
|
||||
self.assertIn("Path of Exile 2", prompt)
|
||||
|
||||
|
||||
class ExplainTests(unittest.TestCase):
|
||||
def _cfg(self, **over):
|
||||
|
||||
Reference in New Issue
Block a user