Skip to content

feat: Display ownership and SSL TXT records during domain setup - #201

Merged
Brooooooklyn merged 5 commits into
mainfrom
feat/txt-domain-verification
May 15, 2026
Merged

Brooooooklyn merged 5 commits into
mainfrom
feat/txt-domain-verification

Conversation

@Brooooooklyn

@Brooooooklyn Brooooooklyn commented May 14, 2026 •

Copy link
Copy Markdown
Member

Summary

  • void domain add now prints all three required DNS records: CNAME (traffic), TXT (ownership verification), TXT (SSL validation).
  • void domain status displays the ownership-verification state alongside SSL/status, and lists outstanding TXT records when verification has not yet completed.
  • Multiple SSL validation records (wildcard certs, etc.) are rendered as separate lines under a single section header instead of collapsed to the first record.
  • The pending-records display keys off per-field validation state (ownership_verification.status !== 'verified' OR ssl_status !== 'active') rather than the aggregate status field, so re-validation cycles still surface the records the user needs to add even after the DB row has previously activated.

This is the CLI half of the platform-side TXT verification change in voidzero-dev/void-platform.

Test plan

  • vp run --filter ./packages/void typecheck passes
  • Adversarial review (Codex) returned approve after two rounds
  • Manual: pair with the platform PR and run void domain add + void domain status against a domain you control end-to-end

🤖 Generated with Claude Code


Note

Medium Risk
Moderate risk: changes CLI domain setup/status output logic and adds a new intercepted GET /__void/ready path in the generated worker wrapper, which could affect deploy-time routing if incorrect.

Overview
Improves void domain add/void domain status to surface all required DNS records, including ownership verification TXT and SSL validation TXT records (rendering multiple SSL records cleanly), and shows an Ownership: pending indicator plus a separate “add these DNS records” block when validation is still outstanding.

Extends the platform domain API types to include ownership_verification and ssl_validation_records, and adds unit tests covering the new domain output behavior.

Updates wrapper generation to intercept GET /__void/ready and return { ready: true } before delegating to the user’s handler, with a unit test to ensure ordering.

Reviewed by Cursor Bugbot for commit c50ce77. Bugbot is set up for automated code reviews on this repo. Configure here.

@netlify

netlify Bot commented May 14, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for staging-void-cloud ready!

Name Link
🔨 Latest commit c50ce77
🔍 Latest deploy log https://app.netlify.com/projects/staging-void-cloud/deploys/6a06df2db17d4e0008f62566
😎 Deploy Preview https://deploy-preview-201--staging-void-cloud.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8b0fb61856

ℹ️ 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".

Comment thread packages/void/src/cli/domain.ts Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 8b0fb61. Configure here.

Comment thread packages/void/src/cli/domain.ts
@cpojer

cpojer commented May 14, 2026

Copy link
Copy Markdown
Member

We don't like tests?

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 799cc85c67

ℹ️ 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".

Comment thread packages/void/src/cli/domain.ts

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8d32fabdc2

ℹ️ 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".

Comment thread packages/void/src/cli/domain.ts Outdated
@Brooooooklyn
Brooooooklyn force-pushed the feat/txt-domain-verification branch from c13bbfb to 7b3c387 Compare May 15, 2026 07:47
Brooooooklyn and others added 5 commits May 15, 2026 16:49
`void domain add` and `void domain status` now print the CNAME record
plus both Cloudflare-issued TXT records (ownership verification + SSL
validation) so users can complete domain binding from the CLI. Multiple
SSL validation records (e.g. wildcard certs) are emitted as separate
lines rather than collapsed to the first. The pending-records display
in `void domain status` keys off per-field validation state instead of
the aggregate `status` so re-validation cycles still surface the records
the user needs to add.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The previous logic keyed off `ownership_verification.status`, but the
Cloudflare Custom Hostnames API does not return a `status` field inside
`ownership_verification` (it returns `{ name, type, value }` only). The
derivation also leaked verified records into the pending-DNS-records
display when only SSL was outstanding.

Use the presence of the `ownership_verification` object as the
ownership-pending signal (CF drops the object once ownership clears),
gate each inner section in the pending block on its own pending state,
and remove the invented `status?: string` from the `DomainResponse`
type so it matches the live CF contract.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Covers the runDomainCommand top-level guards (token + project resolution),
domainAdd output (three-record block, multi-SSL, graceful skip when the
API omits the newer fields), domainStatus presence-based ownership state
and per-state pending-section gating, plus the trivial domainList/domainRemove
not-found paths. 20 tests, all pass.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
CF normally clears `ssl.validation_records` once SSL is active, but
during cert renewals or partial states a stale `active` row can sit
alongside a pending one. Filter on per-record status so the CLI only
surfaces records the user still needs to add.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@Brooooooklyn
Brooooooklyn force-pushed the feat/txt-domain-verification branch from 7b3c387 to c50ce77 Compare May 15, 2026 08:54
@Brooooooklyn
Brooooooklyn merged commit d0f90e9 into main May 15, 2026
10 checks passed
@Brooooooklyn
Brooooooklyn deleted the feat/txt-domain-verification branch May 15, 2026 09:29
cpojer pushed a commit that referenced this pull request Sep 11, 2026
The feature-branch tip (c50ce77) referenced by the previous platform
commit was made unreachable when framework PR #201 squash-merged into
framework main as d0f90e9 and the feature branch was deleted. Fresh
clones of platform fail at `git submodule update --init` with the
dangling pointer; this points the submodule at the squash commit so
clones resolve cleanly.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
cpojer pushed a commit that referenced this pull request Sep 11, 2026
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants