From 650adb085e804eee46ff5d18703840917f882769 Mon Sep 17 00:00:00 2001 From: "anthony.wen" Date: Fri, 27 Mar 2026 14:54:39 -0400 Subject: [PATCH] Keep ATVM watcher notes operator-focused --- atvm/docs/automation/guide.md | 2 ++ atvm/docs/automation/run-learnings.md | 7 +++++++ atvm/docs/automation/status-template.md | 2 ++ atvm/watcher-service/atvm_run_watcher.py | 3 --- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/atvm/docs/automation/guide.md b/atvm/docs/automation/guide.md index ac788a3..44a9ca0 100644 --- a/atvm/docs/automation/guide.md +++ b/atvm/docs/automation/guide.md @@ -237,6 +237,8 @@ Status-report expectations: - Use `/home/aw/code/cds/atvm/docs/automation/status-template.md` as the default template for both local status output and Mattermost status posts. - The default ATVM status template uses flat bullet-list sections for `COVERAGE:` and `TEST FLOW:`, Markdown tables for `SUMMARY:`, `HOSTS:`, and `TIMING:`, and uses `NOTES:` for flat operator-facing notes. - Order the status sections as `SUMMARY:`, `HOSTS:`, `TIMING:`, `COVERAGE:`, `TEST FLOW:`, then `NOTES:`. +- Keep `NOTES:` focused on operator-facing value such as the Currents run URL, real anomalies, failure context, or material fallback behavior. +- Do not include generic watcher bookkeeping messages in `NOTES:` such as artifact-detection confirmations. - The `HOSTS:` table includes `Host`, `Kernel`, `Status`, and `Detail` columns in that order. - In `COVERAGE:`, describe the template, datastore/config family, migration style, and plugin/integration path, but do not list target hosts there. - In `TEST FLOW:`, show the template-specific numbered run flow once for the whole test, not per host. diff --git a/atvm/docs/automation/run-learnings.md b/atvm/docs/automation/run-learnings.md index a6b3afa..bb2684e 100644 --- a/atvm/docs/automation/run-learnings.md +++ b/atvm/docs/automation/run-learnings.md @@ -268,6 +268,13 @@ This file stores run-specific examples only when a run produced a new learning r - Store it under the watcher state directory for the parent build so it survives runner exit and missing log files. - Prefer the persisted Currents URL store over transient log scraping when building the final `NOTES:` section. +## Run Learning: 2026-03-27 (Keep ATVM notes meaningful and remove generic artifact-detected lines) +- Observed requirement: + - Generic watcher bookkeeping notes such as "Run finished and one or more sub-run result artifacts were detected." and "Final reporting artifacts were detected." do not add operator value in ATVM status posts. +- Action for future runs: + - Reserve `NOTES:` for meaningful operator-facing content such as the Currents run URL, real anomalies, failure context, and important fallback behavior. + - Do not include generic artifact-detection confirmations in the posted `NOTES:` section. + ## Run Learning: 2026-03-27 (Default ATVM approval should include the watcher) - Observed requirement: - The operator wants `approve` to mean run with watcher by default. diff --git a/atvm/docs/automation/status-template.md b/atvm/docs/automation/status-template.md index 4056371..9f7e939 100644 --- a/atvm/docs/automation/status-template.md +++ b/atvm/docs/automation/status-template.md @@ -72,6 +72,8 @@ Use this as the default ATVM automation run-status template for: - Keep `Detail` concise. - Put broader context under `NOTES:`, not in the host table. - When available, put the persistent Currents run URL in `NOTES:` so operators can open the exact recorded run directly. +- Keep `NOTES:` limited to meaningful operator-facing items such as the Currents link, real anomalies, failure context, or important fallback behavior. +- Do not include generic watcher bookkeeping lines in `NOTES:` such as "run artifacts were detected" or "final reporting artifacts were detected." - `COVERAGE:` should describe what the run was intended to cover without listing target hosts. - `TEST FLOW:` should describe the template-specific numbered run flow once for the whole test, not per host. - The watcher resolves `TEST FLOW:` from the run template name. diff --git a/atvm/watcher-service/atvm_run_watcher.py b/atvm/watcher-service/atvm_run_watcher.py index 5c2d2cc..47aad38 100644 --- a/atvm/watcher-service/atvm_run_watcher.py +++ b/atvm/watcher-service/atvm_run_watcher.py @@ -1208,9 +1208,6 @@ def determine_state( terminal_subruns = [subrun for subrun in subrun_states if subrun["state"] in {"COMPLETED", "FAILED"}] if terminal_subruns: state = "FAILED" if any(result.failures for result in parent_host_results.values()) else "COMPLETED" - notes.append("Run finished and one or more sub-run result artifacts were detected.") - if end_ts: - notes.append("Final reporting artifacts were detected.") return state, subrun_states, parent_host_results, start_ts, end_ts, currents_url, notes if process_gone_since and (now_utc() - process_gone_since).total_seconds() >= process_exit_grace_seconds: