Release v0.9.6, deploy it, and submit both pages to Google and Bing #217
Labels
No Label
P0
P1
P2
P3
accessibility
backend
bug
content
data-integrity
enhancement
frontend
infra
integration
owner
owner-input
performance
phase-7
phase-8
release-blocker
security
seo
ui
ux
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: null/Queue-North-Website#217
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ships Batch 17 and Batch 18 together.
Order, and why it matters.
git archive HEADin a scratch directory first.docker build .packs the working tree, so an image can work while its tagged commit cannot build.npm run release -- --dry-run, thennpm run release(0.9.5 to 0.9.6).npm run deploy -- --tag v0.9.6 --dry-run, then the deploy, only with Null's explicit go. It recreates the production container and both front doors (queuenorth.com and qn.isnull.dev) go down together.node scripts/audit-html.js --urlagainst both origins (once per crawler: OAI-SearchBot, PerplexityBot, ClaudeBot, Googlebot, bingbot), qa-browser against production, the running image digest equals the one release.sh pushed, and the sitemap carrieslastmodvalues.Why owner-input. Step 3 needs Null's go, and step 5 needs whoever holds the Search Console and Bing accounts, Null or Levi.
Verify:
bash scripts/status.sh --deployed-versionprints 0.9.6,node scripts/audit-html.js --url https://queuenorth.comexits 0, and both URLs show as submitted in Search Console and Bing Webmaster Tools.Released and deployed on 2026-09-10. What is done, and what is not.
Done. v0.9.6 published to the registry and deployed to Portainer stack 58, moving production from v0.9.5. The deploy took a verified database backup first (28.0 KiB, 2 tables), preserved all 12 stack environment variables, and both front doors answered afterwards.
Live evidence:
/services/unified-communicationsserves the approved title, H1 and 164-character description, 12 h2 and 11 section anchors, 1,152 words./services/contact-centerserves its approved title, H1 and 191-character description, 14 h2 and 13 anchors, 2,529 words, with no 99.999% claim.bash scripts/status.shreports running, healthy, image v0.9.6, version 0.9.6, restarts 0.node scripts/audit-html.js --url https://queuenorth.comexits 0 across all 18 pages as OAI-SearchBot, PerplexityBot, ClaudeBot, Googlebot and bingbot.Not done, and this issue stays open for it: submitting both URLs to Google Search Console (Test Live URL, then Request Indexing) and to Bing Webmaster Tools. Both need account access that this session does not have. Bing matters as much as Google here, since its index feeds Copilot and ChatGPT search.
Two findings from the deploy itself are filed separately: #236 (deploy.sh printed the digest and version from before the recreate, so a successful deploy read as a no-op) and #237 (Cloudflare rewrites the privacy email on the second front door).
Release and deploy are done, at v0.9.8 rather than the v0.9.6 this issue was written against: 0.9.6 never went out before Batch 19 landed, and deploying it would have put the header, Cisco logo and tap-target defects live alongside the wording change.
Deployed from
0e47183to Portainer stack 58. Checked independently of deploy.sh, which reported0.9.6 -> 0.9.6and an unchanged digest because of #236:scripts/status.sh: qn-website-dev healthy on v0.9.8, 0 restarts, image id 62d076e3800d, which is the id of the image release.sh built{"status":"ok","db":"ok"}node scripts/audit-html.js --url https://queuenorth.com: 18 pages as all 5 crawlers, nothing wrongnode scripts/device-sweep.mjs --url https://queuenorth.com: 190 page loads across 10 devices, zero findingsWhat is left is the half that needs an account: submitting both service URLs to Google Search Console (Test Live URL, then Request Indexing) and to Bing Webmaster Tools. Staying open for that.