{"id":"6a8c025f8ad6b4812446dd40","title":"2026 08 24 Issue 362","path":"how-to/committee/release-notes/2026-08-24-issue-362","contentMarkdown":"# 24-Aug-2026 — stop wrong-image deploys with tag validation, build assertion and estate health monitoring [#362](https://github.com/nbarrett/ngx-ramblers/issues/362)\n\n## [build 850](https://github.com/nbarrett/ngx-ramblers/actions/runs/32706119437) — [commit eefbc82](https://github.com/nbarrett/ngx-ramblers/commit/eefbc82f61bfa33151c494c883f22a692cb41448)\n\n_____\n\n## What's new\n\nEstate deploys now prove they shipped what was asked for. The deploy workflow refuses an image tag that is not `latest` or a recent successful Docker build number, the deploy itself checks each site is serving the requested build before reporting success, and a scheduled health check watches every environment round the clock. Follows the 23 Aug outage where a run number read from the wrong workflow deployed a February image to every site.\n\n## At a glance\n\n- Deploy to Selected Environments validates `image_tag` before any environment deploys: `latest` or a run number from the last 100 successful Docker builds; anything else is refused with the correct lookup command in the error\n- A deliberate rollback to an older image is still possible with the new `allow_old_image` input\n- After each environment deploys, the job fails unless the app's `/api/version` reports the requested build number\n- A new Estate Health Check workflow polls every environment's `/api/version` every 15 minutes and fails when any site is down, with one retry to ride out blips\n- AGENTS.md: destructive operations need an explicit same-session instruction, and image tags must come from the Docker build workflow only","contentHtml":"<h1>24-Aug-2026 — stop wrong-image deploys with tag validation, build assertion and estate health monitoring <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/362\">#362</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/32706119437\">build 850</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/eefbc82f61bfa33151c494c883f22a692cb41448\">commit eefbc82</a></h2>\n<hr>\n<h2>What&#39;s new</h2>\n<p>Estate deploys now prove they shipped what was asked for. The deploy workflow refuses an image tag that is not <code>latest</code> or a recent successful Docker build number, the deploy itself checks each site is serving the requested build before reporting success, and a scheduled health check watches every environment round the clock. Follows the 23 Aug outage where a run number read from the wrong workflow deployed a February image to every site.</p>\n<h2>At a glance</h2>\n<ul>\n<li>Deploy to Selected Environments validates <code>image_tag</code> before any environment deploys: <code>latest</code> or a run number from the last 100 successful Docker builds; anything else is refused with the correct lookup command in the error</li>\n<li>A deliberate rollback to an older image is still possible with the new <code>allow_old_image</code> input</li>\n<li>After each environment deploys, the job fails unless the app&#39;s <code>/api/version</code> reports the requested build number</li>\n<li>A new Estate Health Check workflow polls every environment&#39;s <code>/api/version</code> every 15 minutes and fails when any site is down, with one retry to ride out blips</li>\n<li>AGENTS.md: destructive operations need an explicit same-session instruction, and image tags must come from the Docker build workflow only</li>\n</ul>\n"}