Harden ATVM watcher grouped-run summary recovery

Tighten `Cloud Run Finished` parsing so categorized watcher recovery only starts on real summary headers, stops at the grouped run's `Recorded Run` URL, and parses only actual summary-table host rows.

Also merge grouped per-host reporter artifacts into categorized recovery so completed grouped batches keep the correct host membership and Mattermost posts remain stable for both categorized and non-categorized runs.
This commit is contained in:
2026-04-16 10:31:20 -04:00
parent 1b88e8887e
commit 37853e56a9
2 changed files with 23 additions and 6 deletions

View File

@@ -553,3 +553,13 @@ This file stores run-specific examples only when a run produced a new learning r
- Action for future runs:
- Do not stop parent summary parsing at the Recorded Run detection log line.
- Bound each `Cloud Run Finished` block by the next run boundary such as the next `Extracted specPattern:` or the next `Cloud Run Finished`, then parse all host rows inside that block.
## Run Learning: 2026-04-16 (Categorized `Cloud Run Finished` parsing must stop at the Recorded Run URL for each grouped batch)
- Observed failure mode:
- A categorized ATVM run completed its Windows batch in the Cypress launch log, but the watcher posted only the earlier grouped results and never sent a separate Windows Mattermost status.
- The watcher let one categorized `Cloud Run Finished` block run forward into the next grouped batch because the next grouped run did not present a fresh `Extracted specPattern:` boundary before the next runner output.
- That let host-row parsing drift across grouped runs, which caused the Windows batch XML to be relabeled under the wrong subrun and left the real Windows subrun stuck in `RUNNING`.
- Action for future runs:
- For categorized grouped recovery, stop each `Cloud Run Finished` block at that grouped run's `🏁 Recorded Run:` line when it is present.
- Do not let categorized summary parsing continue into the next grouped batch's runner output.
- Keep grouped host-row parsing scoped to the actual summary table rows for that grouped run only.