docs(deployment): QA vq03/vq04 + prod vd03 upgraded to afb27e77 (template picker) — binary-only, no migrations; all six health endpoints Healthy

Claude-Session: https://claude.ai/code/session_01Rs5tk49eMrNcwmi8FAohHX
This commit is contained in:
Joseph Doherty
2026-08-21 08:34:49 -04:00
parent afb27e7780
commit f07ba5cff5
@@ -0,0 +1,37 @@
# 2026-08-21 — QA (vq03/vq04) + prod (vd03) → `afb27e77` (template picker)
**Build:** `main` @ `afb27e77` (= `origin/main`), ProductVersion `1.0.0+afb27e77803b0ef775ce7202df1a04fe36e7889e`.
**Delta from the boxes' previous build `691a2f2f`:** Central UI only — Create Instance picks its
template from the Templates folder tree (`TemplatePickerDialog`, `TemplateFolderTree.RevealKeys`,
`?templateId=` preselect), Templates tree context menu "New Instance…" (Deployer-gated), Disable
confirm verb pinned by test (plan `docs/plans/2026-08-21-template-picker.md`). **No EF migrations**
(`git diff --stat 691a2f2f..afb27e77 -- '*Migrations*'` empty) → binary-only swap, no DB step.
## Procedure (same recipe as `2026-08-21-zb-servers-691a2f2f.md`)
1. `dotnet publish` Host + CLI `-c Release -r win-x64 --self-contained true`; zip (125 026 301 B,
SHA-256 `9b73e94c…`); `psbridge push --compress` to vq04 `E:\psrem\releases\afb27e77\scadabridge.zip`
(digest verified, committed=true); Expand-Archive; robocopy `/MIR` to `\\vq03\E$\psrem-stage\afb27e77`
and `\\vd03\E$\psrem-stage\afb27e77` (520 top-level app files each, version checked).
2. **QA 08:29** — Site pair stopped, Central pair stopped (both boxes together), `app`/`cli` renamed to
`*.bak.20260821T082917`, staged copy in, each box's three `appsettings*.json` restored,
Central pair started (+20 s), Site pair started (+45 s).
3. **Prod 08:32** — same on vd03, backups `*.bak.20260821T083203`.
## Verification
| Endpoint | Result |
|---|---|
| 10.220.158.2:8085 / :8084 (vq03) | 200 Healthy, members=2 |
| 10.220.158.3:8085 / :8084 (vq04) | 200 Healthy, members=2 |
| vd03 localhost:8085 / :8084 | 200 Healthy, members=1 |
Post-swap ERR/FTL scan: vq03 0/0; vq04 central 1 (first-probe `member status: Removed`), vq04 site
3 (the known cosmetic `[FTL] host terminated unexpectedly` on the **outgoing** 691a2f2f process at
08:29:57 during the stop window + two first-probe `Removed`); vd03 1/1 (first-probe `Removed`).
No new signatures.
## Rollback
Per host, services stopped pair-wise: rename `app` → `app.failed`, `app.bak.20260821T08…` → `app`
(and `cli.bak…` → `cli`), start Central then Site. No DB rollback needed.