Improve categorized watcher duration parsing for grouped runs

- relax grouped-run duration parsing so Linux categorized summaries like `12m 19.4` and `15m 42.2` are converted reliably even when the trailing `s` is split awkwardly in the parent run log
- keep the categorized grouped-run summary extraction aligned with the host results already being parsed from the parent Cloud Run Finished blocks
- refresh the controller watcher copy so the next categorized run uses the improved grouped duration parser
This commit is contained in:
2026-03-26 13:41:06 -04:00
parent c74f74bc46
commit 7d49896ac2

View File

@@ -265,7 +265,7 @@ def extract_check_xml_timestamp_from_file(xml_path: Path) -> Optional[datetime]:
def parse_duration_seconds(raw: str) -> Optional[float]: def parse_duration_seconds(raw: str) -> Optional[float]:
raw = " ".join(raw.split()) raw = " ".join(raw.split())
match = re.search(r"(?:(\d+)h\s+)?(?:(\d+)m\s+)?(\d+(?:\.\d+)?)s", raw) match = re.search(r"(?:(\d+)h\s+)?(?:(\d+)m\s+)?(\d+(?:\.\d+)?)(?:s)?", raw)
if not match: if not match:
return None return None
hours = int(match.group(1) or 0) hours = int(match.group(1) or 0)