Fix ATVM watcher host parsing for wrapped duration rows

Handle Currents "Cloud Run Finished" table rows where the trailing
"s" in long duration values wraps onto its own continuation line.

Instead of appending that standalone continuation to the end of the
host row, drop the wrapped row and rely on the existing duration
parser to accept values without the trailing "s". This preserves all
host rows in parent summary parsing for completed non-categorized runs.

Also record the failure mode and recovery guidance in the ATVM run
learnings doc.
This commit is contained in:
2026-04-22 14:03:02 -04:00
parent dc8168dc7c
commit 86e7830d63
2 changed files with 15 additions and 1 deletions

View File

@@ -572,3 +572,14 @@ This file stores run-specific examples only when a run produced a new learning r
- 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.
## Run Learning: 2026-04-22 (Wrapped duration rows in parent `Cloud Run Finished` tables must not drop hosts)
- Observed failure mode:
- A non-categorized `cmc-migrateops` run completed four hosts, and the launch log's parent `Cloud Run Finished` table showed all four host rows.
- The saved watcher state still only kept two hosts.
- The Currents summary wrapped the trailing `s` in long duration values such as `16m 13.9s` onto its own continuation row.
- The watcher normalization appended that standalone `s` to the far end of the host row, which broke the host-row regex for those wrapped rows.
- Action for future runs:
- When parsing parent `Cloud Run Finished` tables, treat standalone wrapped `s` rows as duration-cell continuations and remove those rows instead of appending `s` to the end of the host line.
- Rely on the existing duration parser to accept wrapped values without the trailing `s`.
- Replay the exact launch log through the current watcher code after this fix before trusting a corrected host count.