- update the ATVM automation guide to make watcher-first launch order explicit whenever the watcher is approved
- update the ATVM AGENTS rules so the runner is never started before the watcher for watcher-backed runs
- add a 2026-03-27 run learning documenting that the watcher helper can delete the live runner log if the runner starts first
- update the ATVM AGENTS guidance so expected output is not called out in routine run updates
- update the ATVM automation guide to mention reset-failed output only when it actually blocks watcher startup or matters for debugging
- add a 2026-03-26 run learning recording that this reset-failed output is normal low-signal noise during successful watcher startup
- update the ATVM automation guide to require a post-template verification gate before launching run-sorry-cypress.py
- require verification that both the generated .ts files and the config specPattern include every requested VM after cmc-templates.py finishes
- document that the runner must not be launched when any requested VM is missing from the generated spec set
- update the ATVM AGENTS rules so this template-to-runner verification step is part of the default automation workflow
- add explicit Windows ATVM guest credential references alongside the existing Linux target defaults
- update the ATVM automation guide and AGENTS rules so Linux SSH uses ATVM_TARGET_* while Windows guest access uses ATVM_WINDOWS_TARGET_*
- update the CDS MCP CMC install and VMware workflow docs to distinguish Linux and Windows credential usage for the shared ATVM target IP
- update the VM lookup reference so common VM credentials list both Linux and Windows target variables
- add the per-run ATVM watcher service package under atvm/watcher-service, including the Python watcher, systemd template unit, helper scripts, and deployment docs
- document the watcher-service install and operating model, including one-run-per-instance behavior, Mattermost posting rules, and the best-practice /opt/atvm-watcher-service install path
- clarify ATVM run approval semantics so `approve` means run without watcher and `approve with watcher` means run and start the watcher
- update the ATVM automation guide and AGENTS rules so watcher usage and approval behavior are explicit and consistent
- remove hardcoded credentials, tokens, registration codes, and similar secret values from tracked ATVM and CDS MCP docs
- replace those values with references to /home/aw/code/cds/.env.credentials.local and the corresponding environment variable names
- update current operator guides to instruct sourcing .env.credentials.local before credential-dependent setup and automation workflows
- update the ATVM setup scripts to consume ATVM_TARGET_PASSWORD from the environment instead of hardcoding the Ubuntu root SSH password
- scrub the remaining tracked artifact log entry that still included the old CMC registration code
- keep the local-only credential inventory in .env.credentials.local while leaving that file untracked
- change ATVM status formatting to the approved Markdown-table template with SUMMARY:, HOSTS:, TIMING:, and NOTES:
- document that normal status requests print locally only unless explicitly asked to send to Mattermost
- document Mattermost defaults and posting rules, including only sending after full run completion
- document the controller-side systemd watcher design for future automation
- add the secrets migration/cleanup review doc
- ignore .env.credentials.local in git and reflect the move toward using that local credentials file instead of hardcoded secrets
Restructure the ATVM folder to separate executable scripts from workflow documentation and long-form environment reference material.
Move setup and automation scripts into scripts/, move setup and automation guides into docs/, add top-level README and workflow conventions, and organize durable environment details into inventory/ while preserving the original long-form ATVM notes under archive/imported-notes/.
Update internal documentation paths to match the new layout and remove the archived Zone.Identifier metadata file.
Add guide rules that treat 192.168.3.191 as the default ATVM target host.
For that IP, default SSH access now assumes root/cdsi2012 credentials and ignores host key mismatch with StrictHostKeyChecking=no and UserKnownHostsFile=/dev/null.
Update ATVM setup, automation, and ESX/vCenter guides so future runs use the same default behavior consistently.
Update the ATVM automation guidance so exact planned commands must always be shown for operator review before any execution. Require explicit approval before running cmc-templates.py, run-sorry-cypress.py, or any other ATVM run command, and require fresh approval whenever the displayed command set changes. Also record the new approval rule in the ATVM run-learning notes and operator instruction file.
Adjust the maintained ATVM blacklist so atvm156-debian9.3.0 uses the reason RE-CREATE MIGHT BE NEEDED and remove atvm157-debian13.0.0 from blacklist entries and reusable exclude examples. Also clarify the ATVM automation workflow so cmc-templates.py must finish successfully before run-sorry-cypress.py is started.
Clarify that ATVM automation status requests refer to the local atvm
folder workflow and the automation VM at 192.168.3.190, not Cirrus
project operations such as the atvm - cypress project.
Update the ATVM guide and AGENTS notes to prefer local evidence in this
order when reporting status:
- active runner processes
- live automation VM files
- shell history for the last launch command
- historical reporter artifacts
Record the new run learning in atvm-automation-runs.md so future status
requests use the correct source of truth.
Document ATVM automation defaults to always include --ignore_force_shutdown on cmc-templates.py commands and to use --use_specified_plugin iscsi unless explicitly overridden.
Update the ATVM automation guide, folder-level AGENTS instructions, and run learnings so future runs follow the same defaults.
Clarify ATVM automation status handling so status requests default to live run data from the automation VM. If no automation is active, fall back to the most recent historical run artifacts and logs.
Also document that categorized runs must always be reconstructed as a single full run across all category batches or cloud sub-runs, rather than reporting only the current or latest batch.
Update:
- atvm/atvm-automation-guide.md
- atvm/AGENTS.md
- atvm/atvm-automation-runs.md
Record the operator preference to stop immediately when a requested ATVM config file is missing. Update the ATVM guide, local agent instructions, and run learnings to avoid searching for or substituting alternate config files without explicit direction.
- show failed machines with a longer failure description on the same status line
- keep Notes for broader context beyond the machine-specific failure reason
- update the ATVM automation guide and AGENTS rules to match
- record the reporting preference in atvm-automation-runs.md
- keep atvm-automation-examples.md limited to reusable example commands
- move example-file role guidance into AGENTS.md and atvm-automation-guide.md
- document that all ATVM automation run types use the same status display format
- record the status-format rule as a run learning in atvm-automation-runs.md
- Treat atvm-automation-examples.md as reference material rather than default operator intent.
- Use only explicitly requested options, plus maintained mandatory blacklist handling.
- Record the rule as a run learning in atvm-automation-runs.md.
Stop defaulting to cypress.atvm-config.ts in ATVM guidance.
Prefer gold-named config files unless explicitly told otherwise.
Update automation examples to use cypress.atvm-config-gold.ts.
Record the run learning explaining why the old default is unreliable.
Add atvm144-suse15.0 to the ATVM automation blacklist because it crashes when creating a migration session.
Update maintained exclude examples to include the new blacklist entry.
Tighten status reporting guidance to require one machine per line.
Add a Notes section for failure reasons and operator-facing context.
Record the new run learnings in atvm-automation-runs.md.