Divvent

For Divvent’s own team. It is generated from the operations document in our repository, which is the one to edit. If you use Divvent, the help centre is for you.

6a. Is a deployment actually serving?

CI going green means the control plane deployed. It does not mean the portal renders — nothing in the pipeline has ever opened a page — and the two came apart the first time anybody looked.

node scripts/probe-deployment.mjs staging
node scripts/probe-deployment.mjs https://pr-42.divvent.dev
node scripts/probe-deployment.mjs staging --json      # for a workflow
node scripts/probe-deployment.mjs staging --http      # no browser needed

It reads the hostnames out of infra/control-plane.json, opens each one in a real Chromium, and reports the status, the title, any console errors and any subresource that failed. A 5xx on any surface exits non-zero. A 401, 403 or a redirect is not a failure: the console sits behind Cloudflare Access, and being turned away there is the correct answer.

--http drops the browser and asks over HTTP. It checks strictly less — no console errors, no subresources — and says so in its output. Use it where there is no Chromium, or from a sandboxed agent behind a TLS-terminating proxy, which Chromium will not trust and must never be told to ignore.

What it cannot tell you is why. A SvelteKit Worker that throws serves a page whose entire content is "Internal Error", and the probe can only report that sentence back. Reading the actual error needs Workers Logs, which is the item recorded in DESIGN.md as the observability floor. Until that is built, a 500 found here is diagnosed by redeploying with more logging, which is the loop that item exists to end.