feat(cloud): VERDICT console domain overrides + chrome rebrand - #17
Conversation
Make SST domains env-overridable for a VERDICT-owned Cloudflare zone, add verdict-cloud-rebrand for console marketing chrome, and document the optional cloud surface in docs/CLOUD.md. Legal pages and non-en i18n left upstream until dedicated copy exists.
|
This PR doesn't fully meet our contributing guidelines and PR template. What needs to be fixed:
Please edit this PR description to address the above within 2 hours, or it will be automatically closed. If you believe this was flagged incorrectly, please let a maintainer know. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4a9e33e369
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "darwin-aarch64-dmg": "VERDICT Desktop.dmg", | ||
| "darwin-x64-dmg": "VERDICT Desktop.dmg", | ||
| "windows-x64-nsis": "VERDICT Desktop Installer.exe", |
There was a problem hiding this comment.
Serve VERDICT assets before renaming downloads
These new filenames are returned for assets that are still fetched from https://github.com/anomalyco/${channel === "stable" ? "opencode" : "opencode-beta"}/releases/... later in this handler. In any cloud deployment, users clicking the VERDICT desktop download receive upstream OpenCode binaries under a VERDICT filename, so they install the wrong product and cannot tell from the saved file name.
Useful? React with 👍 / 👎.
| const url = new URL(req.url) | ||
| const locale = localeFromRequest(req) | ||
| const host = Resource.App.stage === "production" ? "docs.opencode.ai" : "docs.dev.opencode.ai" | ||
| const host = Resource.App.stage === "production" ? "docs.verdict.local" : "docs.dev.verdict.local" |
There was a problem hiding this comment.
Keep docs proxy on the deployed docs domain
With VERDICT_CLOUD_DOMAIN set, infra deploys the docs site as docs.${domain} in infra/app.ts, but this route now proxies to docs.verdict.local/docs.dev.verdict.local. On deployed production/dev stages those .local hosts are not the Cloudflare site being created, so /docs requests from the console fail instead of serving the docs for the configured domain; the same literal is repeated in the docs catch-all and share redirect routes.
Useful? React with 👍 / 👎.
| <button | ||
| data-component="cli-row" | ||
| onClick={handleCopyClick("curl -fsSL https://opencode.ai/install | bash")} | ||
| onClick={handleCopyClick("curl -fsSL https://github.com/TimothyVang/verdict-opencode | bash")} |
There was a problem hiding this comment.
Clicking this row copies curl -fsSL https://github.com/TimothyVang/verdict-opencode | bash, while the visible text still advertises an installer endpoint. The GitHub repository homepage is HTML, not this repo's install shell script, so users who copy from the download page get a shell syntax failure instead of installing VERDICT; point this at a raw or deployed installer script before piping to bash.
Useful? React with 👍 / 👎.
| <CopyStatus /> | ||
| </button> | ||
| <button data-component="cli-row" onClick={handleCopyClick("brew install anomalyco/tap/opencode")}> | ||
| <button data-component="cli-row" onClick={handleCopyClick("brew install TimothyVang/verdict-opencode")}> |
There was a problem hiding this comment.
Use a valid Homebrew tap formula name
This replacement produces brew install TimothyVang/verdict-opencode, but Homebrew documents installing from a tap as brew install user/repository/formula (or tapping first, then installing the formula); user/repository by itself is a tap name, not a package to install. On macOS/Linux the copied command will fail, and the landing page has the same token, so keep the previous owner/tap/formula shape or publish a proper VERDICT tap/formula.
Useful? React with 👍 / 👎.
Wire zen workspace/billing links through config.baseUrl, point install chrome and desktop downloads at TimothyVang/verdict-opencode, and document VITE_PUBLIC_BASE_URL for VERDICT cloud deploys.
Summary
infra/stage.ts:VERDICT_CLOUD_DOMAIN/VERDICT_CLOUD_ZONE_ID(and short-domain) overrides so the fork can deploy without anomalyco DNSscripts/verdict-cloud-rebrand.sh+bun run verdict:cloud-rebrandfor console marketing chromedocs/CLOUD.mddeploy/privacy checklistTest plan
bun run --cwd packages/console/app typecheckgit diffscope (no packages/web mass i18n)sst deployrequires operator Cloudflare/PlanetScale/Stripe secrets (not run here)Notes
Cloud console is optional; DFIR local engine remains primary.