---
id: w1/m11.5/t005
title: Render parity — verify table, badges, add/delete match render.com
worker: worker1
status: done
estimate: 20m
depends_on: [w1/m11.5/t004]
---

## Objective

Compare the bex Custom Domains section against the live render.com capture
(2026-07-09) and flag any gaps; apply minor fixes that fall within this milestone's
scope; record larger divergences as follow-up inbox notes.

## Context

- **Render capture (2026-07-09):** `dashboard.render.com/…/settings` → Custom Domains
  section: table (Name link, "Verified Status" column, "Certificate Status" column,
  per-row kebab Menu), "Add Custom Domain" button, "Render Subdomain" toggle +
  description + URL.
- bex equivalents: `verificationStatus` → "verified"|"pending"; `serverStatus` →
  "active"|"pending". Platform subdomain is always-on (no toggle needed).
- The check must cover: column names, badge labels, button labels, empty state
  phrasing, dialog flow, error/loading states, and the platform-subdomain section.

## Steps

1. Use Playwright MCP or manual inspection to compare the rendered bex Settings tab
   (with a service that has custom domains) against the Render capture.
2. Fix minor label/styling deviations directly (column header text, badge colors,
   button label capitalization, etc.).
3. Record any missing features (DNS CNAME instructions, "Unknown" cert status
   distinction, Edit action) as inbox notes in `w5/` rather than blocking this
   milestone.
4. Verify that the REST and MCP surfaces are consistent with the GraphQL fields
   rendered here (three-adapter consistency rule).

## Files

- `dashboard/src/features/services/components/custom-domains-section.tsx` (minor
  fixes if any)
- `dashboard/src/features/services/locales/{en,zh}.ts` (label adjustments)
- `.pm/w5/NNN.md` (new inbox notes for gaps, if any)

## Acceptance criteria

- [ ] Column headers, badge labels, and button text match Render's capture or
      are documented deviations in `## Source + Goal linkage`.
- [ ] No visual regressions on the existing Settings tab sections (plan picker).
- [ ] REST / GraphQL / MCP field names are consistent (no surface diverged from
      m11's implementation).

## Out of scope

- DNS CNAME verification flow. "Certificate Status: Unknown" vs "Unknown" badge
  distinction (no live cert in the local dev environment).
