Prioritize Machine and Frame SteamTracking signals

This commit is contained in:
seanbetts committed 2026-06-05 14:46:32 +01:00
1 parent 98f9a51171
commit 0ac9232d61
7 files changed
+497 -27

No files matched your search

+2
View File
@@ -125,6 +125,8 @@ def build_summary(prev_dir: Path, curr_dir: Path):
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamKit/PICS", "steamkit-pics-key-lines.txt"))
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamDB", "steamdb-key-lines.txt"))
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamTracking source", "steamtracking-source.txt"))
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamTracking Frame signals", "steamtracking-frame-signals-key-lines.txt"))
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamTracking Machine signals", "steamtracking-machine-signals-key-lines.txt"))
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamTracking hardware signals", "steamtracking-hardware-signals-key-lines.txt"))
deltas.extend(compare_text_lines(prev_dir, curr_dir, "Steam client manifests", "steamtracking-client-manifests-key-lines.txt"))
deltas.extend(compare_text_lines(prev_dir, curr_dir, "SteamVR depots", "steamvr-depots-key-lines.txt"))
+12
View File
@@ -53,6 +53,12 @@ def build_draft(run_dir: Path):
hardware_signal_lines = first_n_nonempty(
reports / "steamtracking-hardware-signals-key-lines.txt", 8
)
frame_signal_lines = first_n_nonempty(
reports / "steamtracking-frame-signals-key-lines.txt", 12
)
machine_signal_lines = first_n_nonempty(
reports / "steamtracking-machine-signals-key-lines.txt", 12
)
client_manifest_lines = first_n_nonempty(
reports / "steamtracking-client-manifests-key-lines.txt", 8
)
@@ -133,6 +139,12 @@ def build_draft(run_dir: Path):
lines.extend([f"- `{line}`" for line in tracking_lines])
else:
lines.append("- No focused SteamTracking report found.")
if frame_signal_lines:
lines.extend(["", "Steam Frame client signal focus:"])
lines.extend([f"- `{line}`" for line in frame_signal_lines])
if machine_signal_lines:
lines.extend(["", "Steam Machine client signal focus:"])
lines.extend([f"- `{line}`" for line in machine_signal_lines])
if hardware_signal_lines:
lines.extend(["", "Steam hardware backend signal focus:"])
lines.extend([f"- `{line}`" for line in hardware_signal_lines])
@@ -42,6 +42,25 @@ SIGNAL_RE = re.compile(
re.IGNORECASE,
)
FRAME_RE = re.compile(r"Steam\s*Frame|SteamFrame|steamframe|FrameVerified|FrameGames", re.IGNORECASE)
FRAME_PRIORITY_RE = re.compile(
r"WelcomeToSteamFrame|GuidedTour_SteamFrame|SteamFrameWirelessAdapterDialog|"
r"controller_steamframe_pair|Settings_RemotePlay_WifiAPSection|"
r"Settings_Internet_Limit_Connection_Lower_Bands|LibraryTab_FrameVerified|"
r"steamFrameVerifiedApps|FrameGames|skip_steamframe_pairing_dialog|"
r"k_EAppTestType_SteamFrameCompatibilityReview",
re.IGNORECASE,
)
MACHINE_RE = re.compile(r"Steam\s*Machine|SteamMachine|steammachine", re.IGNORECASE)
MACHINE_PRIORITY_RE = re.compile(
r"GuidedTour_SteamMachine|WelcomeToSteamMachine|GuidedTour_SDCard_Title_SteamMachine|"
r"SteamMachine_TestResult|SteamMachineVerified|SteamMachineCompatibility",
re.IGNORECASE,
)
def iter_files(tracking_dir: Path):
for root in SEARCH_ROOTS:
@@ -119,6 +138,95 @@ def write_key_lines(rows, path: Path):
path.write_text("\n".join(lines) + ("\n" if lines else ""), encoding="utf-8")
def frame_category(row):
text = row["text"]
if not (FRAME_RE.search(text) or FRAME_RE.search(row["path"])):
return ""
if not FRAME_PRIORITY_RE.search(text):
return ""
if re.search(r"WelcomeToSteamFrame|GuidedTour_SteamFrame", text, re.IGNORECASE):
return "frame-setup"
if re.search(
r"SteamFrameWirelessAdapterDialog|controller_steamframe_pair|"
r"Settings_RemotePlay_WifiAPSection|Settings_Internet_Limit_Connection_Lower_Bands|"
r"skip_steamframe_pairing_dialog",
text,
re.IGNORECASE,
):
return "frame-pairing"
if re.search(
r"LibraryTab_FrameVerified|steamFrameVerifiedApps|FrameGames|"
r"k_EAppTestType_SteamFrameCompatibilityReview",
text,
re.IGNORECASE,
):
return "frame-compatibility"
return "frame"
def write_frame_key_lines(rows, path: Path):
priority = {
"frame-setup": 0,
"frame-pairing": 1,
"frame-compatibility": 2,
"frame": 3,
}
lines = []
seen = set()
def sort_key(row):
return (priority.get(frame_category(row), 99), row["path"], int(row["line"]), row["text"])
for row in sorted(rows, key=sort_key):
category = frame_category(row)
if not category:
continue
line = f"{category}\t{row['path']}:{row['line']}\t{row['text']}"
if line in seen:
continue
seen.add(line)
lines.append(line)
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text("\n".join(lines) + ("\n" if lines else ""), encoding="utf-8")
def machine_category(row):
text = row["text"]
if not (MACHINE_RE.search(text) or MACHINE_RE.search(row["path"])):
return ""
if not MACHINE_PRIORITY_RE.search(text):
return ""
if re.search(r"GuidedTour_SteamMachine|WelcomeToSteamMachine|GuidedTour_SDCard_Title_SteamMachine", text, re.IGNORECASE):
return "machine-setup"
if re.search(r"SteamMachine_TestResult|SteamMachineVerified|SteamMachineCompatibility", text, re.IGNORECASE):
return "machine-compatibility"
return "machine"
def write_machine_key_lines(rows, path: Path):
priority = {
"machine-setup": 0,
"machine-compatibility": 1,
"machine": 2,
}
lines = []
seen = set()
def sort_key(row):
return (priority.get(machine_category(row), 99), row["path"], int(row["line"]), row["text"])
for row in sorted(rows, key=sort_key):
category = machine_category(row)
if not category:
continue
line = f"{category}\t{row['path']}:{row['line']}\t{row['text']}"
if line in seen:
continue
seen.add(line)
lines.append(line)
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text("\n".join(lines) + ("\n" if lines else ""), encoding="utf-8")
def write_markdown(rows, path: Path):
lines = [
"# SteamTracking Hardware Signals",
@@ -148,6 +256,8 @@ def main():
rows.sort(key=lambda row: (row["category"], row["path"], int(row["line"]), row["text"]))
write_tsv(rows, reports / "steamtracking-hardware-signals.tsv")
write_key_lines(rows, reports / "steamtracking-hardware-signals-key-lines.txt")
write_frame_key_lines(rows, reports / "steamtracking-frame-signals-key-lines.txt")
write_machine_key_lines(rows, reports / "steamtracking-machine-signals-key-lines.txt")
write_markdown(rows, reports / "steamtracking-hardware-signals.md")
+2
View File
@@ -159,6 +159,8 @@ def build(run_dir: Path):
notable.extend([f"- SteamKit/PICS: `{line}`" for line in filtered_first(reports / "steamkit-pics-key-lines.txt", 8)])
notable.extend([f"- SteamDB: `{line}`" for line in filtered_first(reports / "steamdb-key-lines.txt", 5)])
notable.extend([f"- SteamTracking: `{line}`" for line in filtered_first(reports / "steamtracking-pairing-focus.txt", 5)])
notable.extend([f"- SteamTracking Frame: `{line}`" for line in filtered_first(reports / "steamtracking-frame-signals-key-lines.txt", 12)])
notable.extend([f"- SteamTracking Machine: `{line}`" for line in filtered_first(reports / "steamtracking-machine-signals-key-lines.txt", 12)])
notable.extend([f"- SteamTracking hardware: `{line}`" for line in filtered_first(reports / "steamtracking-hardware-signals-key-lines.txt", 8)])
notable.extend([f"- Steam client manifests: `{line}`" for line in filtered_first(reports / "steamtracking-client-manifests-key-lines.txt", 8)])
notable.extend([f"- SteamVR depots: `{line}`" for line in filtered_first(reports / "steamvr-depots-key-lines.txt", 5)])