Skip to content

fix(dashboard): align action labels and sentence case - #1083

Merged
izadoesdev merged 4 commits into
mainfrom
codex/dashboard-copy
Oct 6, 2026
Merged

izadoesdev merged 4 commits into
mainfrom
codex/dashboard-copy

Conversation

@izadoesdev

@izadoesdev izadoesdev commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

Standardize dashboard labels, errors, and empty states to sentence case and consistent action wording. Keep billing usage empty states neutral, and update the existing E2E selectors to match the visible copy.

The slice contains four coherent commits across 120 dashboard files. It is rebased onto current main, preserving merged stage badges, the updated Business context regression selectors, and the onboarding brief/setup improvements from #1087. No backend contracts, schemas, or tracker publication change.

Validation: touched-file format checks, root lint, root type checks, and 11 billing tests (46 assertions) pass. CI and both configured Dashboard Playwright suites must pass on the published final head before merge.

AI assistance: Codex reviewed and integrated the slice. No dependency on an unmerged PR.

Summary by CodeRabbit

  • Style
    • Standardized dashboard copy to sentence case across billing, analytics, links, monitors, websites, settings, and organization tools.
    • Updated button, dialog, status, chart, and empty-state labels for clearer, more consistent wording.
    • Refined loading punctuation and error messages, and improved display labels for flag types, severities, and invoice statuses.

@vercel

vercel Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
dashboard Ready Ready Preview Oct 6, 2026 7:40am UTC
databuddy-status Ready Ready Preview Oct 6, 2026 7:40am UTC
1 Skipped Deployment
Project Deployment Actions Updated
documentation Skipped Skipped Oct 6, 2026 7:40am UTC

@unkey-deploy

unkey-deploy Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Unkey Deploy

Name Status Preview Inspect Updated (UTC)
links (preview) Ready Visit Preview Inspect Oct 6, 2026 7:40am

@coderabbitai

coderabbitai Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 7da4af06-7a5b-4168-99bc-f5a6fa3c78a4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 777222c2-6b36-4c81-8418-654b2a262e3b
📥 Commits

Reviewing files that changed from the base of the PR and between 9693ffe and fff667f.

📒 Files selected for processing (120)
  • apps/dashboard/app/(dby)/dby/expired/page.tsx
  • apps/dashboard/app/(dby)/dby/l/[slug]/page.tsx
  • apps/dashboard/app/(dby)/dby/not-found/page.tsx
  • apps/dashboard/app/(main)/billing/components/billing-header.tsx
  • apps/dashboard/app/(main)/billing/components/cancel-subscription-dialog.tsx
  • apps/dashboard/app/(main)/billing/components/consumption-chart.tsx
  • apps/dashboard/app/(main)/billing/components/plan-status-badge.tsx
  • apps/dashboard/app/(main)/billing/components/usage-breakdown-table.tsx
  • apps/dashboard/app/(main)/billing/history/page.tsx
  • apps/dashboard/app/(main)/feedback/components/feedback-list.tsx
  • apps/dashboard/app/(main)/home/_components/summary-stats.tsx
  • apps/dashboard/app/(main)/links/[id]/_components/clicks-chart.tsx
  • apps/dashboard/app/(main)/links/[id]/_components/link-stats-content.tsx
  • apps/dashboard/app/(main)/links/[id]/layout.tsx
  • apps/dashboard/app/(main)/links/_components/expiration-picker.tsx
  • apps/dashboard/app/(main)/links/_components/folder-dropdown.tsx
  • apps/dashboard/app/(main)/links/_components/link-folder-sheet.tsx
  • apps/dashboard/app/(main)/links/_components/link-form-schema.ts
  • apps/dashboard/app/(main)/links/_components/link-item.tsx
  • apps/dashboard/app/(main)/links/_components/links-search-bar.tsx
  • apps/dashboard/app/(main)/links/_components/og-preview.tsx
  • apps/dashboard/app/(main)/monitors/_components/monitor-detail.tsx
  • apps/dashboard/app/(main)/monitors/layout.tsx
  • apps/dashboard/app/(main)/monitors/page.tsx
  • apps/dashboard/app/(main)/organizations/components/api-keys-section.tsx
  • apps/dashboard/app/(main)/organizations/components/business-context-layout.tsx
  • apps/dashboard/app/(main)/organizations/components/organization-provider.tsx
  • apps/dashboard/app/(main)/organizations/components/transfer-assets.tsx
  • apps/dashboard/app/(main)/organizations/components/workspace-websites-section.tsx
  • apps/dashboard/app/(main)/organizations/members/invitation-list.tsx
  • apps/dashboard/app/(main)/organizations/members/member-list.tsx
  • apps/dashboard/app/(main)/settings/analytics/page.tsx
  • apps/dashboard/app/(main)/settings/features/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/filters/add-filters.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/filters/save-filter-dialog.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/filters/saved-filters-menu.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/audience-tab.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview-tab.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview/_components/geo-map-section.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview/_components/outbound-links-section.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/tracking-setup-tab.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tracking-gate.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-data-table.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-detail-modal.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-summary-stats.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-table-columns.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-trends-chart.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/recent-errors-table.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/top-error-card.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/utils.ts
  • apps/dashboard/app/(main)/websites/[id]/flags/_components/flags-list.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/_components/user-rules-builder.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/_components/variant-editor.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/archive/_components/archived-flag-item.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/archive/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/groups/_components/group-selector.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/layout.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/templates/_components/template-item.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/templates/_data/templates.ts
  • apps/dashboard/app/(main)/websites/[id]/funnels/_components/edit-funnel-dialog.tsx
  • apps/dashboard/app/(main)/websites/[id]/goals/_components/edit-goal-dialog.tsx
  • apps/dashboard/app/(main)/websites/[id]/goals/_components/goal-item.tsx
  • apps/dashboard/app/(main)/websites/[id]/pulse/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/revenue/_components/revenue-chart.tsx
  • apps/dashboard/app/(main)/websites/[id]/users/[userId]/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/vitals/page.tsx
  • apps/dashboard/app/(main)/websites/_components/website-card.tsx
  • apps/dashboard/app/(main)/websites/page.tsx
  • apps/dashboard/app/charts/page.tsx
  • apps/dashboard/app/error.tsx
  • apps/dashboard/app/not-found.tsx
  • apps/dashboard/app/payment/success/page.tsx
  • apps/dashboard/app/public/[id]/layout.tsx
  • apps/dashboard/components/agent/agent-chat-surface.tsx
  • apps/dashboard/components/agent/agent-error-message.tsx
  • apps/dashboard/components/agent/agent-input.tsx
  • apps/dashboard/components/agent/agent-text-switch.tsx
  • apps/dashboard/components/agent/chat-history.tsx
  • apps/dashboard/components/agent/hooks/use-speech-transcription.ts
  • apps/dashboard/components/ai-elements/ai-component.tsx
  • apps/dashboard/components/analytics/res-gauge-card.tsx
  • apps/dashboard/components/analytics/unauthorized-access-error.tsx
  • apps/dashboard/components/analytics/vital-gauge-card.tsx
  • apps/dashboard/components/charts/annotation-modal.tsx
  • apps/dashboard/components/charts/annotations-panel.tsx
  • apps/dashboard/components/charts/metrics-constants.ts
  • apps/dashboard/components/error-boundary.tsx
  • apps/dashboard/components/events/custom-events/classify-properties.ts
  • apps/dashboard/components/events/custom-events/events-stats-grid.tsx
  • apps/dashboard/components/events/custom-events/events-trend-chart.tsx
  • apps/dashboard/components/events/custom-events/property-summary.tsx
  • apps/dashboard/components/feedback-prompt.tsx
  • apps/dashboard/components/layout/pending-invitations-button.tsx
  • apps/dashboard/components/organizations/api-key-types.ts
  • apps/dashboard/components/organizations/create-organization-dialog.tsx
  • apps/dashboard/components/table/rows/page-time-row.tsx
  • apps/dashboard/components/table/rows/timezone-row.tsx
  • apps/dashboard/components/transfer-to-org-dialog.tsx
  • apps/dashboard/components/website-error-state.tsx
  • apps/dashboard/hooks/use-chart-preferences.ts
  • apps/dashboard/lib/ai-components/renderers/annotations/list.tsx
  • apps/dashboard/lib/ai-components/renderers/annotations/preview.tsx
  • apps/dashboard/lib/ai-components/renderers/charts/time-series.tsx
  • apps/dashboard/lib/ai-components/renderers/funnels/list.tsx
  • apps/dashboard/lib/ai-components/renderers/funnels/preview.tsx
  • apps/dashboard/lib/ai-components/renderers/goals/list.tsx
  • apps/dashboard/lib/ai-components/renderers/goals/preview.tsx
  • apps/dashboard/lib/ai-components/renderers/links/preview.tsx
  • apps/dashboard/lib/annotation-constants.ts
  • apps/dashboard/lib/filter-options.ts
  • apps/dashboard/lib/tool-display.tsx
  • apps/dashboard/test/e2e/STANDARDS.md
  • apps/dashboard/test/e2e/specs/core/flags.spec.ts
  • apps/dashboard/test/e2e/specs/core/funnels.spec.ts
  • apps/dashboard/test/e2e/specs/core/goals.spec.ts
  • apps/dashboard/test/e2e/specs/core/website-setup.spec.ts
  • apps/dashboard/test/e2e/specs/core/websites.spec.ts
  • apps/dashboard/test/e2e/specs/regressions/api-keys.spec.ts
  • apps/dashboard/test/e2e/utils/dashboard.ts

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 0 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (1)
  • GitHub Check: Greptile Review
🧰 Additional context used
📚 Code guidelines (3)
.cursor/rules/performance.mdc — auto-discovered
.cursor/rules/ui-guidelines.mdc — auto-discovered
.cursor/rules/01-MUST-DO.mdc — auto-discovered
📓 Path-based instructions (3)
Source excerpt: When you discover a new performance improvement, optimization pattern, or fix a performance regression, add a concise bullet to the relevant section below in the same session.

📄 CodeRabbit inference engine (.cursor/rules/performance.mdc)

Files:

  • apps/dashboard/app/(main)/organizations/components/business-context-layout.tsx
  • apps/dashboard/lib/ai-components/renderers/annotations/preview.tsx
  • apps/dashboard/app/(main)/websites/[id]/goals/_components/goal-item.tsx
  • apps/dashboard/app/(main)/links/[id]/layout.tsx
  • apps/dashboard/app/(dby)/dby/not-found/page.tsx
  • apps/dashboard/app/(main)/links/[id]/_components/clicks-chart.tsx
  • apps/dashboard/test/e2e/specs/core/websites.spec.ts
  • apps/dashboard/components/events/custom-events/property-summary.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/page.tsx
  • apps/dashboard/lib/tool-display.tsx
  • apps/dashboard/components/charts/annotation-modal.tsx
  • apps/dashboard/app/(main)/links/_components/expiration-picker.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview/_components/outbound-links-section.tsx
  • apps/dashboard/lib/annotation-constants.ts
  • apps/dashboard/components/table/rows/page-time-row.tsx
  • apps/dashboard/components/agent/agent-chat-surface.tsx
  • apps/dashboard/components/error-boundary.tsx
  • apps/dashboard/app/(main)/billing/components/billing-header.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview/_components/geo-map-section.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/filters/save-filter-dialog.tsx
  • apps/dashboard/components/agent/agent-input.tsx
  • apps/dashboard/app/public/[id]/layout.tsx
  • apps/dashboard/lib/ai-components/renderers/funnels/preview.tsx
  • apps/dashboard/components/table/rows/timezone-row.tsx
  • apps/dashboard/components/organizations/api-key-types.ts
  • apps/dashboard/app/(main)/monitors/page.tsx
  • apps/dashboard/app/(main)/websites/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/revenue/_components/revenue-chart.tsx
  • apps/dashboard/app/(main)/settings/analytics/page.tsx
  • apps/dashboard/lib/ai-components/renderers/charts/time-series.tsx
  • apps/dashboard/app/(main)/links/_components/link-form-schema.ts
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/top-error-card.tsx
  • apps/dashboard/app/(main)/organizations/members/invitation-list.tsx
  • apps/dashboard/hooks/use-chart-preferences.ts
  • apps/dashboard/components/agent/agent-text-switch.tsx
  • apps/dashboard/app/(main)/websites/[id]/vitals/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/filters/saved-filters-menu.tsx
  • apps/dashboard/lib/ai-components/renderers/funnels/list.tsx
  • apps/dashboard/app/(main)/organizations/components/api-keys-section.tsx
  • apps/dashboard/app/(main)/billing/components/cancel-subscription-dialog.tsx
  • apps/dashboard/app/(main)/links/[id]/_components/link-stats-content.tsx
  • apps/dashboard/app/(main)/home/_components/summary-stats.tsx
  • apps/dashboard/app/(main)/links/_components/folder-dropdown.tsx
  • apps/dashboard/components/agent/agent-error-message.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/_components/variant-editor.tsx
  • apps/dashboard/components/transfer-to-org-dialog.tsx
  • apps/dashboard/lib/ai-components/renderers/goals/preview.tsx
  • apps/dashboard/components/analytics/res-gauge-card.tsx
  • apps/dashboard/app/(main)/organizations/members/member-list.tsx
  • apps/dashboard/app/(main)/billing/components/plan-status-badge.tsx
  • apps/dashboard/app/(dby)/dby/l/[slug]/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/layout.tsx
  • apps/dashboard/components/agent/chat-history.tsx
  • apps/dashboard/components/events/custom-events/classify-properties.ts
  • apps/dashboard/app/payment/success/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tracking-gate.tsx
  • apps/dashboard/test/e2e/specs/regressions/api-keys.spec.ts
  • apps/dashboard/app/(main)/links/_components/link-item.tsx
  • apps/dashboard/components/feedback-prompt.tsx
  • apps/dashboard/components/agent/hooks/use-speech-transcription.ts
  • apps/dashboard/app/(main)/websites/_components/website-card.tsx
  • apps/dashboard/app/(main)/links/_components/links-search-bar.tsx
  • apps/dashboard/components/charts/metrics-constants.ts
  • apps/dashboard/test/e2e/specs/core/website-setup.spec.ts
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/audience-tab.tsx
  • apps/dashboard/test/e2e/specs/core/goals.spec.ts
  • apps/dashboard/test/e2e/specs/core/funnels.spec.ts
  • apps/dashboard/app/error.tsx
  • apps/dashboard/app/(main)/links/_components/og-preview.tsx
  • apps/dashboard/components/analytics/unauthorized-access-error.tsx
  • apps/dashboard/test/e2e/specs/core/flags.spec.ts
  • apps/dashboard/components/events/custom-events/events-stats-grid.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/recent-errors-table.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/groups/_components/group-selector.tsx
  • apps/dashboard/app/(main)/organizations/components/workspace-websites-section.tsx
  • apps/dashboard/app/(dby)/dby/expired/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/archive/page.tsx
  • apps/dashboard/app/(main)/links/_components/link-folder-sheet.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/_components/user-rules-builder.tsx
  • apps/dashboard/test/e2e/STANDARDS.md
  • apps/dashboard/app/(main)/feedback/components/feedback-list.tsx
  • apps/dashboard/components/layout/pending-invitations-button.tsx
  • apps/dashboard/lib/ai-components/renderers/goals/list.tsx
  • apps/dashboard/app/(main)/websites/[id]/goals/_components/edit-goal-dialog.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-trends-chart.tsx
  • apps/dashboard/app/(main)/websites/[id]/pulse/page.tsx
  • apps/dashboard/components/charts/annotations-panel.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/_components/flags-list.tsx
  • apps/dashboard/lib/ai-components/renderers/annotations/list.tsx
  • apps/dashboard/components/events/custom-events/events-trend-chart.tsx
  • apps/dashboard/app/(main)/billing/components/usage-breakdown-table.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-summary-stats.tsx
  • apps/dashboard/app/(main)/organizations/components/organization-provider.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/tracking-setup-tab.tsx
  • apps/dashboard/components/organizations/create-organization-dialog.tsx
  • apps/dashboard/components/analytics/vital-gauge-card.tsx
  • apps/dashboard/components/ai-elements/ai-component.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/utils.ts
  • apps/dashboard/app/(main)/organizations/components/transfer-assets.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-data-table.tsx
  • apps/dashboard/test/e2e/utils/dashboard.ts
  • apps/dashboard/app/(main)/websites/[id]/flags/archive/_components/archived-flag-item.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/filters/add-filters.tsx
  • apps/dashboard/components/website-error-state.tsx
  • apps/dashboard/app/(main)/websites/[id]/users/[userId]/page.tsx
  • apps/dashboard/lib/filter-options.ts
  • apps/dashboard/app/(main)/websites/[id]/funnels/_components/edit-funnel-dialog.tsx
  • apps/dashboard/app/charts/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-table-columns.tsx
  • apps/dashboard/app/(main)/monitors/_components/monitor-detail.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/templates/_components/template-item.tsx
  • apps/dashboard/app/(main)/monitors/layout.tsx
  • apps/dashboard/app/(main)/billing/history/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-detail-modal.tsx
  • apps/dashboard/app/(main)/billing/components/consumption-chart.tsx
  • apps/dashboard/lib/ai-components/renderers/links/preview.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview-tab.tsx
  • apps/dashboard/app/not-found.tsx
  • apps/dashboard/app/(main)/settings/features/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/templates/_data/templates.ts
Source excerpt: MUST use Tailwind CSS defaults unless custom values already exist or are explicitly requested Source excerpt: MUST use motion/react (formerly framer-motion) when JavaScript animation is required Source excerpt: SHOULD use tw...

📄 CodeRabbit inference engine (.cursor/rules/ui-guidelines.mdc)

Files:

  • apps/dashboard/app/(main)/organizations/components/business-context-layout.tsx
  • apps/dashboard/lib/ai-components/renderers/annotations/preview.tsx
  • apps/dashboard/app/(main)/websites/[id]/goals/_components/goal-item.tsx
  • apps/dashboard/app/(main)/links/[id]/layout.tsx
  • apps/dashboard/app/(dby)/dby/not-found/page.tsx
  • apps/dashboard/app/(main)/links/[id]/_components/clicks-chart.tsx
  • apps/dashboard/test/e2e/specs/core/websites.spec.ts
  • apps/dashboard/components/events/custom-events/property-summary.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/page.tsx
  • apps/dashboard/lib/tool-display.tsx
  • apps/dashboard/components/charts/annotation-modal.tsx
  • apps/dashboard/app/(main)/links/_components/expiration-picker.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview/_components/outbound-links-section.tsx
  • apps/dashboard/lib/annotation-constants.ts
  • apps/dashboard/components/table/rows/page-time-row.tsx
  • apps/dashboard/components/agent/agent-chat-surface.tsx
  • apps/dashboard/components/error-boundary.tsx
  • apps/dashboard/app/(main)/billing/components/billing-header.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview/_components/geo-map-section.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/filters/save-filter-dialog.tsx
  • apps/dashboard/components/agent/agent-input.tsx
  • apps/dashboard/app/public/[id]/layout.tsx
  • apps/dashboard/lib/ai-components/renderers/funnels/preview.tsx
  • apps/dashboard/components/table/rows/timezone-row.tsx
  • apps/dashboard/components/organizations/api-key-types.ts
  • apps/dashboard/app/(main)/monitors/page.tsx
  • apps/dashboard/app/(main)/websites/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/revenue/_components/revenue-chart.tsx
  • apps/dashboard/app/(main)/settings/analytics/page.tsx
  • apps/dashboard/lib/ai-components/renderers/charts/time-series.tsx
  • apps/dashboard/app/(main)/links/_components/link-form-schema.ts
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/top-error-card.tsx
  • apps/dashboard/app/(main)/organizations/members/invitation-list.tsx
  • apps/dashboard/hooks/use-chart-preferences.ts
  • apps/dashboard/components/agent/agent-text-switch.tsx
  • apps/dashboard/app/(main)/websites/[id]/vitals/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/filters/saved-filters-menu.tsx
  • apps/dashboard/lib/ai-components/renderers/funnels/list.tsx
  • apps/dashboard/app/(main)/organizations/components/api-keys-section.tsx
  • apps/dashboard/app/(main)/billing/components/cancel-subscription-dialog.tsx
  • apps/dashboard/app/(main)/links/[id]/_components/link-stats-content.tsx
  • apps/dashboard/app/(main)/home/_components/summary-stats.tsx
  • apps/dashboard/app/(main)/links/_components/folder-dropdown.tsx
  • apps/dashboard/components/agent/agent-error-message.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/_components/variant-editor.tsx
  • apps/dashboard/components/transfer-to-org-dialog.tsx
  • apps/dashboard/lib/ai-components/renderers/goals/preview.tsx
  • apps/dashboard/components/analytics/res-gauge-card.tsx
  • apps/dashboard/app/(main)/organizations/members/member-list.tsx
  • apps/dashboard/app/(main)/billing/components/plan-status-badge.tsx
  • apps/dashboard/app/(dby)/dby/l/[slug]/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/layout.tsx
  • apps/dashboard/components/agent/chat-history.tsx
  • apps/dashboard/components/events/custom-events/classify-properties.ts
  • apps/dashboard/app/payment/success/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tracking-gate.tsx
  • apps/dashboard/test/e2e/specs/regressions/api-keys.spec.ts
  • apps/dashboard/app/(main)/links/_components/link-item.tsx
  • apps/dashboard/components/feedback-prompt.tsx
  • apps/dashboard/components/agent/hooks/use-speech-transcription.ts
  • apps/dashboard/app/(main)/websites/_components/website-card.tsx
  • apps/dashboard/app/(main)/links/_components/links-search-bar.tsx
  • apps/dashboard/components/charts/metrics-constants.ts
  • apps/dashboard/test/e2e/specs/core/website-setup.spec.ts
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/audience-tab.tsx
  • apps/dashboard/test/e2e/specs/core/goals.spec.ts
  • apps/dashboard/test/e2e/specs/core/funnels.spec.ts
  • apps/dashboard/app/error.tsx
  • apps/dashboard/app/(main)/links/_components/og-preview.tsx
  • apps/dashboard/components/analytics/unauthorized-access-error.tsx
  • apps/dashboard/test/e2e/specs/core/flags.spec.ts
  • apps/dashboard/components/events/custom-events/events-stats-grid.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/recent-errors-table.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/groups/_components/group-selector.tsx
  • apps/dashboard/app/(main)/organizations/components/workspace-websites-section.tsx
  • apps/dashboard/app/(dby)/dby/expired/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/archive/page.tsx
  • apps/dashboard/app/(main)/links/_components/link-folder-sheet.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/_components/user-rules-builder.tsx
  • apps/dashboard/test/e2e/STANDARDS.md
  • apps/dashboard/app/(main)/feedback/components/feedback-list.tsx
  • apps/dashboard/components/layout/pending-invitations-button.tsx
  • apps/dashboard/lib/ai-components/renderers/goals/list.tsx
  • apps/dashboard/app/(main)/websites/[id]/goals/_components/edit-goal-dialog.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-trends-chart.tsx
  • apps/dashboard/app/(main)/websites/[id]/pulse/page.tsx
  • apps/dashboard/components/charts/annotations-panel.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/_components/flags-list.tsx
  • apps/dashboard/lib/ai-components/renderers/annotations/list.tsx
  • apps/dashboard/components/events/custom-events/events-trend-chart.tsx
  • apps/dashboard/app/(main)/billing/components/usage-breakdown-table.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-summary-stats.tsx
  • apps/dashboard/app/(main)/organizations/components/organization-provider.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/tracking-setup-tab.tsx
  • apps/dashboard/components/organizations/create-organization-dialog.tsx
  • apps/dashboard/components/analytics/vital-gauge-card.tsx
  • apps/dashboard/components/ai-elements/ai-component.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/utils.ts
  • apps/dashboard/app/(main)/organizations/components/transfer-assets.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-data-table.tsx
  • apps/dashboard/test/e2e/utils/dashboard.ts
  • apps/dashboard/app/(main)/websites/[id]/flags/archive/_components/archived-flag-item.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/filters/add-filters.tsx
  • apps/dashboard/components/website-error-state.tsx
  • apps/dashboard/app/(main)/websites/[id]/users/[userId]/page.tsx
  • apps/dashboard/lib/filter-options.ts
  • apps/dashboard/app/(main)/websites/[id]/funnels/_components/edit-funnel-dialog.tsx
  • apps/dashboard/app/charts/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-table-columns.tsx
  • apps/dashboard/app/(main)/monitors/_components/monitor-detail.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/templates/_components/template-item.tsx
  • apps/dashboard/app/(main)/monitors/layout.tsx
  • apps/dashboard/app/(main)/billing/history/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-detail-modal.tsx
  • apps/dashboard/app/(main)/billing/components/consumption-chart.tsx
  • apps/dashboard/lib/ai-components/renderers/links/preview.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview-tab.tsx
  • apps/dashboard/app/not-found.tsx
  • apps/dashboard/app/(main)/settings/features/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/templates/_data/templates.ts
Source excerpt: description: Basic guidelines for the project so vibe coders don't fuck it up globs: alwaysApply: true when using 'text-right', always add 'text-balance' so its not ugly Source excerpt: description: Basic guidelines for the...

📄 CodeRabbit inference engine (.cursor/rules/01-MUST-DO.mdc)

Files:

  • apps/dashboard/app/(main)/organizations/components/business-context-layout.tsx
  • apps/dashboard/lib/ai-components/renderers/annotations/preview.tsx
  • apps/dashboard/app/(main)/websites/[id]/goals/_components/goal-item.tsx
  • apps/dashboard/app/(main)/links/[id]/layout.tsx
  • apps/dashboard/app/(dby)/dby/not-found/page.tsx
  • apps/dashboard/app/(main)/links/[id]/_components/clicks-chart.tsx
  • apps/dashboard/test/e2e/specs/core/websites.spec.ts
  • apps/dashboard/components/events/custom-events/property-summary.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/page.tsx
  • apps/dashboard/lib/tool-display.tsx
  • apps/dashboard/components/charts/annotation-modal.tsx
  • apps/dashboard/app/(main)/links/_components/expiration-picker.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview/_components/outbound-links-section.tsx
  • apps/dashboard/lib/annotation-constants.ts
  • apps/dashboard/components/table/rows/page-time-row.tsx
  • apps/dashboard/components/agent/agent-chat-surface.tsx
  • apps/dashboard/components/error-boundary.tsx
  • apps/dashboard/app/(main)/billing/components/billing-header.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview/_components/geo-map-section.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/filters/save-filter-dialog.tsx
  • apps/dashboard/components/agent/agent-input.tsx
  • apps/dashboard/app/public/[id]/layout.tsx
  • apps/dashboard/lib/ai-components/renderers/funnels/preview.tsx
  • apps/dashboard/components/table/rows/timezone-row.tsx
  • apps/dashboard/components/organizations/api-key-types.ts
  • apps/dashboard/app/(main)/monitors/page.tsx
  • apps/dashboard/app/(main)/websites/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/revenue/_components/revenue-chart.tsx
  • apps/dashboard/app/(main)/settings/analytics/page.tsx
  • apps/dashboard/lib/ai-components/renderers/charts/time-series.tsx
  • apps/dashboard/app/(main)/links/_components/link-form-schema.ts
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/top-error-card.tsx
  • apps/dashboard/app/(main)/organizations/members/invitation-list.tsx
  • apps/dashboard/hooks/use-chart-preferences.ts
  • apps/dashboard/components/agent/agent-text-switch.tsx
  • apps/dashboard/app/(main)/websites/[id]/vitals/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/filters/saved-filters-menu.tsx
  • apps/dashboard/lib/ai-components/renderers/funnels/list.tsx
  • apps/dashboard/app/(main)/organizations/components/api-keys-section.tsx
  • apps/dashboard/app/(main)/billing/components/cancel-subscription-dialog.tsx
  • apps/dashboard/app/(main)/links/[id]/_components/link-stats-content.tsx
  • apps/dashboard/app/(main)/home/_components/summary-stats.tsx
  • apps/dashboard/app/(main)/links/_components/folder-dropdown.tsx
  • apps/dashboard/components/agent/agent-error-message.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/_components/variant-editor.tsx
  • apps/dashboard/components/transfer-to-org-dialog.tsx
  • apps/dashboard/lib/ai-components/renderers/goals/preview.tsx
  • apps/dashboard/components/analytics/res-gauge-card.tsx
  • apps/dashboard/app/(main)/organizations/members/member-list.tsx
  • apps/dashboard/app/(main)/billing/components/plan-status-badge.tsx
  • apps/dashboard/app/(dby)/dby/l/[slug]/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/layout.tsx
  • apps/dashboard/components/agent/chat-history.tsx
  • apps/dashboard/components/events/custom-events/classify-properties.ts
  • apps/dashboard/app/payment/success/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tracking-gate.tsx
  • apps/dashboard/test/e2e/specs/regressions/api-keys.spec.ts
  • apps/dashboard/app/(main)/links/_components/link-item.tsx
  • apps/dashboard/components/feedback-prompt.tsx
  • apps/dashboard/components/agent/hooks/use-speech-transcription.ts
  • apps/dashboard/app/(main)/websites/_components/website-card.tsx
  • apps/dashboard/app/(main)/links/_components/links-search-bar.tsx
  • apps/dashboard/components/charts/metrics-constants.ts
  • apps/dashboard/test/e2e/specs/core/website-setup.spec.ts
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/audience-tab.tsx
  • apps/dashboard/test/e2e/specs/core/goals.spec.ts
  • apps/dashboard/test/e2e/specs/core/funnels.spec.ts
  • apps/dashboard/app/error.tsx
  • apps/dashboard/app/(main)/links/_components/og-preview.tsx
  • apps/dashboard/components/analytics/unauthorized-access-error.tsx
  • apps/dashboard/test/e2e/specs/core/flags.spec.ts
  • apps/dashboard/components/events/custom-events/events-stats-grid.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/recent-errors-table.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/groups/_components/group-selector.tsx
  • apps/dashboard/app/(main)/organizations/components/workspace-websites-section.tsx
  • apps/dashboard/app/(dby)/dby/expired/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/archive/page.tsx
  • apps/dashboard/app/(main)/links/_components/link-folder-sheet.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/_components/user-rules-builder.tsx
  • apps/dashboard/test/e2e/STANDARDS.md
  • apps/dashboard/app/(main)/feedback/components/feedback-list.tsx
  • apps/dashboard/components/layout/pending-invitations-button.tsx
  • apps/dashboard/lib/ai-components/renderers/goals/list.tsx
  • apps/dashboard/app/(main)/websites/[id]/goals/_components/edit-goal-dialog.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-trends-chart.tsx
  • apps/dashboard/app/(main)/websites/[id]/pulse/page.tsx
  • apps/dashboard/components/charts/annotations-panel.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/_components/flags-list.tsx
  • apps/dashboard/lib/ai-components/renderers/annotations/list.tsx
  • apps/dashboard/components/events/custom-events/events-trend-chart.tsx
  • apps/dashboard/app/(main)/billing/components/usage-breakdown-table.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-summary-stats.tsx
  • apps/dashboard/app/(main)/organizations/components/organization-provider.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/tracking-setup-tab.tsx
  • apps/dashboard/components/organizations/create-organization-dialog.tsx
  • apps/dashboard/components/analytics/vital-gauge-card.tsx
  • apps/dashboard/components/ai-elements/ai-component.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/utils.ts
  • apps/dashboard/app/(main)/organizations/components/transfer-assets.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-data-table.tsx
  • apps/dashboard/test/e2e/utils/dashboard.ts
  • apps/dashboard/app/(main)/websites/[id]/flags/archive/_components/archived-flag-item.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/filters/add-filters.tsx
  • apps/dashboard/components/website-error-state.tsx
  • apps/dashboard/app/(main)/websites/[id]/users/[userId]/page.tsx
  • apps/dashboard/lib/filter-options.ts
  • apps/dashboard/app/(main)/websites/[id]/funnels/_components/edit-funnel-dialog.tsx
  • apps/dashboard/app/charts/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-table-columns.tsx
  • apps/dashboard/app/(main)/monitors/_components/monitor-detail.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/templates/_components/template-item.tsx
  • apps/dashboard/app/(main)/monitors/layout.tsx
  • apps/dashboard/app/(main)/billing/history/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/errors/_components/error-detail-modal.tsx
  • apps/dashboard/app/(main)/billing/components/consumption-chart.tsx
  • apps/dashboard/lib/ai-components/renderers/links/preview.tsx
  • apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview-tab.tsx
  • apps/dashboard/app/not-found.tsx
  • apps/dashboard/app/(main)/settings/features/page.tsx
  • apps/dashboard/app/(main)/websites/[id]/flags/templates/_data/templates.ts
🔇 Additional comments (63)
apps/dashboard/test/e2e/STANDARDS.md (1)

88-89: LGTM!

apps/dashboard/test/e2e/specs/core/flags.spec.ts (1)

17-17: LGTM!

Also applies to: 18-18, 22-22, 27-27, 32-32, 37-37, 38-38, 43-43, 52-52, 54-54

apps/dashboard/test/e2e/specs/core/funnels.spec.ts (1)

18-18: LGTM!

Also applies to: 19-19, 21-21, 24-24, 31-31, 32-32

apps/dashboard/test/e2e/specs/core/goals.spec.ts (1)

17-17: LGTM!

Also applies to: 18-18, 20-20, 27-27, 28-28, 36-36

apps/dashboard/test/e2e/specs/core/website-setup.spec.ts (1)

23-25: LGTM!

Also applies to: 37-37

apps/dashboard/test/e2e/specs/core/websites.spec.ts (1)

22-24: LGTM!

Also applies to: 47-49

apps/dashboard/test/e2e/specs/regressions/api-keys.spec.ts (1)

4-4: LGTM!

Also applies to: 14-14

apps/dashboard/test/e2e/utils/dashboard.ts (1)

4-4: LGTM!

Also applies to: 54-54, 55-55, 57-57, 60-60, 62-62, 82-84, 104-104, 111-111, 128-130, 132-132

apps/dashboard/app/(main)/websites/[id]/flags/_components/flags-list.tsx (1)

43-43: LGTM!

Also applies to: 114-114, 116-116, 169-169, 182-182

apps/dashboard/app/(main)/websites/[id]/flags/_components/user-rules-builder.tsx (1)

103-103: LGTM!

Also applies to: 138-138, 231-231, 256-256

apps/dashboard/app/(main)/websites/[id]/flags/_components/variant-editor.tsx (1)

183-183: LGTM!

Also applies to: 262-262

apps/dashboard/app/(main)/websites/[id]/flags/archive/_components/archived-flag-item.tsx (1)

13-13: LGTM!

Also applies to: 16-20, 71-71, 74-74

apps/dashboard/app/(main)/websites/[id]/flags/archive/page.tsx (1)

139-139: LGTM!

apps/dashboard/app/(main)/websites/[id]/flags/groups/_components/group-selector.tsx (1)

170-170: LGTM!

apps/dashboard/app/(main)/websites/[id]/flags/layout.tsx (1)

104-104: LGTM!

Also applies to: 106-106, 108-108, 110-111, 144-144

apps/dashboard/app/(main)/websites/[id]/flags/page.tsx (1)

174-174: LGTM!

apps/dashboard/app/(main)/websites/[id]/flags/templates/_components/template-item.tsx (1)

33-38: LGTM!

Also applies to: 40-45, 89-92, 101-101

apps/dashboard/app/(main)/websites/[id]/flags/templates/_data/templates.ts (1)

6-6: LGTM!

Also applies to: 17-17, 28-28, 48-48, 67-67, 78-78, 98-98, 109-109, 120-120, 140-140, 160-160, 186-186, 219-219

apps/dashboard/components/agent/agent-chat-surface.tsx (1)

194-194: LGTM!

apps/dashboard/components/agent/agent-error-message.tsx (1)

31-31: LGTM!

apps/dashboard/components/agent/agent-input.tsx (1)

694-694: LGTM!

apps/dashboard/components/agent/agent-text-switch.tsx (1)

323-323: LGTM!

apps/dashboard/components/agent/chat-history.tsx (1)

104-104: LGTM!

Also applies to: 121-121, 171-171

apps/dashboard/components/agent/hooks/use-speech-transcription.ts (1)

175-175: LGTM!

Also applies to: 189-189, 199-199

apps/dashboard/components/ai-elements/ai-component.tsx (1)

12-29: LGTM!

Also applies to: 33-33

apps/dashboard/components/analytics/res-gauge-card.tsx (1)

51-51: LGTM!

Also applies to: 241-241

apps/dashboard/components/analytics/unauthorized-access-error.tsx (1)

21-21: LGTM!

Also applies to: 36-36

apps/dashboard/components/analytics/vital-gauge-card.tsx (1)

66-66: LGTM!

Also applies to: 104-104, 120-120, 123-123

apps/dashboard/components/charts/annotation-modal.tsx (1)

181-181: LGTM!

Also applies to: 341-341

apps/dashboard/components/charts/annotations-panel.tsx (1)

114-114: LGTM!

Also applies to: 160-160

apps/dashboard/components/charts/metrics-constants.ts (1)

206-206: LGTM!

Also applies to: 213-213, 226-226, 234-234, 312-312, 319-319

apps/dashboard/components/error-boundary.tsx (1)

78-78: LGTM!

apps/dashboard/components/events/custom-events/classify-properties.ts (1)

152-152: LGTM!

apps/dashboard/components/events/custom-events/events-stats-grid.tsx (1)

89-89: LGTM!

Also applies to: 108-108, 116-116, 123-123, 137-137

apps/dashboard/components/events/custom-events/events-trend-chart.tsx (1)

153-153: LGTM!

Also applies to: 420-420, 422-422, 441-441, 469-469, 476-476, 522-522, 530-530

apps/dashboard/components/events/custom-events/property-summary.tsx (1)

96-96: LGTM!

apps/dashboard/components/feedback-prompt.tsx (1)

28-28: LGTM!

Also applies to: 155-155

apps/dashboard/components/layout/pending-invitations-button.tsx (1)

26-26: LGTM!

apps/dashboard/components/organizations/api-key-types.ts (1)

4-14: LGTM!

Also applies to: 23-23

apps/dashboard/components/organizations/create-organization-dialog.tsx (1)

111-111: LGTM!

Also applies to: 123-123, 138-138, 146-146, 164-164, 191-191

apps/dashboard/components/table/rows/page-time-row.tsx (1)

40-40: LGTM!

apps/dashboard/components/table/rows/timezone-row.tsx (1)

34-34: LGTM!

apps/dashboard/components/transfer-to-org-dialog.tsx (1)

77-77: LGTM!

apps/dashboard/components/website-error-state.tsx (1)

259-259: LGTM!

Also applies to: 276-276, 299-299, 307-307, 318-318, 327-327, 339-339, 399-399, 433-433

apps/dashboard/hooks/use-chart-preferences.ts (1)

24-28: LGTM!

apps/dashboard/app/(main)/websites/[id]/_components/filters/add-filters.tsx (1)

28-28: LGTM!

Also applies to: 168-168, 332-332

apps/dashboard/app/(main)/websites/[id]/_components/filters/save-filter-dialog.tsx (1)

93-93: LGTM!

apps/dashboard/app/(main)/websites/[id]/_components/filters/saved-filters-menu.tsx (1)

87-87: LGTM!

apps/dashboard/app/(main)/websites/[id]/_components/tabs/audience-tab.tsx (1)

370-370: LGTM!

Also applies to: 381-381, 387-387

apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview-tab.tsx (1)

314-314: LGTM!

Also applies to: 329-329, 344-344, 547-547, 557-557, 567-567, 577-577, 599-599, 670-670, 889-889, 907-907, 1000-1000, 1057-1057, 1066-1066

apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview/_components/geo-map-section.tsx (1)

55-55: LGTM!

apps/dashboard/app/(main)/websites/[id]/_components/tabs/overview/_components/outbound-links-section.tsx (1)

241-241: LGTM!

Also applies to: 251-251, 274-274

apps/dashboard/app/(main)/websites/[id]/_components/tabs/tracking-setup-tab.tsx (1)

283-283: LGTM!

Also applies to: 429-429, 464-464

apps/dashboard/app/(main)/websites/[id]/_components/tracking-gate.tsx (1)

111-111: LGTM!

apps/dashboard/app/(main)/websites/[id]/errors/_components/error-data-table.tsx (1)

32-32: LGTM!

Also applies to: 42-42, 62-62

apps/dashboard/app/(main)/websites/[id]/errors/_components/error-detail-modal.tsx (1)

6-6: LGTM!

Also applies to: 10-10, 118-119, 217-217, 219-219, 235-235, 290-290, 335-335, 377-377

apps/dashboard/app/(main)/websites/[id]/errors/_components/error-summary-stats.tsx (1)

97-97: LGTM!

Also applies to: 109-109, 114-114

apps/dashboard/app/(main)/websites/[id]/errors/_components/error-table-columns.tsx (1)

19-19: LGTM!

Also applies to: 29-29, 54-54, 62-62, 101-101, 111-111

apps/dashboard/app/(main)/websites/[id]/errors/_components/error-trends-chart.tsx (2)

133-133: LGTM!

Also applies to: 147-147, 195-195


25-26: 🗄️ Data Integrity & Integration

createTooltipEntries matches each payload’s dataKey to MetricConfig.key; it does not match name. Both <Area> elements retain dataKey values that match TOOLTIP_METRICS, so changing their display names does not remove these values from the tooltip.

apps/dashboard/app/(main)/websites/[id]/errors/_components/recent-errors-table.tsx (1)

12-12: LGTM!

Also applies to: 29-29, 218-218

apps/dashboard/app/(main)/websites/[id]/errors/_components/top-error-card.tsx (1)

17-17: LGTM!

Also applies to: 35-35

apps/dashboard/app/(main)/websites/[id]/errors/_components/utils.ts (1)

8-8: LGTM!

Also applies to: 16-16, 21-21, 29-29, 37-37, 45-45, 53-53, 78-82


Walkthrough

The dashboard updates sentence-style capitalization, punctuation, labels, and selected badge displays across many pages and shared components. It also adjusts formatting for unrecognized invoice statuses, error severity labels, and long goal targets. E2E selectors now match the revised UI labels.

Changes

Dashboard labels and page displays

Layer / File(s) Summary
Section-page labels and displays
apps/dashboard/app/(dby)/*, apps/dashboard/app/(main)/billing/*, .../feedback/*, .../home/*, .../links/*, .../monitors/*, .../organizations/*, .../settings/*
Updates page titles, action labels, empty-state copy, and punctuation. Unrecognized invoice statuses now display with an initial capital and spaces in place of underscores. Selected billing and invitation badge variants change.
Website analytics and error displays
apps/dashboard/app/(main)/websites/[id]/_components/*, .../errors/_components/*
Updates analytics, filter, tracking, and error-view labels. Error severity names use a new display-label mapping, and clipboard failures use showErrorToast.
Feature-flag labels and badges
apps/dashboard/app/(main)/websites/[id]/flags/*
Updates flag, archive, and template labels and selected status displays. Known template categories and flag types use mapped labels; unmapped categories and flag types retain raw-value fallbacks.
Funnels, goals, and page copy
apps/dashboard/app/(main)/websites/[id]/funnels/*, .../goals/*, .../pulse/*, .../revenue/*, .../users/*, .../vitals/*, apps/dashboard/app/charts/*, apps/dashboard/app/error.tsx, apps/dashboard/app/not-found.tsx, apps/dashboard/app/payment/*, apps/dashboard/app/public/*, apps/dashboard/app/(main)/websites/page.tsx
Updates funnel and goal form labels and defaults, chart examples, website actions, and other page copy. Goal target truncation now ends with one typographic ellipsis. Paused funnel and goal badges use the warning variant.
Shared dashboard components
apps/dashboard/components/agent/*, .../analytics/*, .../charts/*, .../events/*, .../organizations/*, apps/dashboard/components/website-error-state.tsx, apps/dashboard/hooks/*, apps/dashboard/components/table/*, apps/dashboard/components/feedback-prompt.tsx, apps/dashboard/components/layout/*
Updates shared labels and messages. The pending-invitations accessibility label uses singular wording when the count is one.
AI renderers and shared labels
apps/dashboard/lib/ai-components/renderers/*, apps/dashboard/lib/annotation-constants.ts, apps/dashboard/lib/filter-options.ts, apps/dashboard/lib/tool-display.tsx
Updates renderer labels and selected badge variants, plus shared annotation, filter, and tool labels.
E2E selectors
apps/dashboard/test/e2e/*
Updates accessible-name selectors and helper locators to match revised labels. The tested flows remain unchanged.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to fff66

The reported misleading empty state does not occur for valid selected date ranges. No actionable merge-blocking issue remains after normal checks.

🚥 Pre-merge checks | ✅ 4 | ❓ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ❓ Inconclusive Docstring coverage is 2.27% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 44 functions across 50 files. (70 skipped:… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: standardizing dashboard action labels and sentence case.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 2.27% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 44 functions across 50 files. (70 skipped: 1 unsupported, 69 over the file limit.)

✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@blacksmith-sh

This comment has been minimized.

@izadoesdev

Copy link
Copy Markdown
Member Author

@greptileai

Please re-review final head e67748a58f5bca18b5ee68369b153c910042eb98. Valid findings have been fixed and validated; intentional copy choices and optional refactors are explained in their resolved threads. Please check the final diff for remaining actionable issues.

@greptile-apps

greptile-apps Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[Low risk] Dashboard UI text changes to sentence case and punctuation.

The PR appears safe to merge from this review; the required final-head CI and Playwright checks still need to pass.

What we checked:

  • Failed usage looks like no activity: Both usage panels now say “No usage data” when usage data is missing. Neither claims that no activity occurred.

Summary

The PR updates dashboard wording across billing, links, websites, analytics, flags, organizations, and the agent, with more consistent sentence case and action labels. It also clarifies selected empty states and status labels, and updates E2E selectors to match the visible copy.

  • Billing pages use clearer labels for usage, plans, and invoices.
  • Error views show sentence-case labels and readable severity names.
  • Dashboard actions and labels use clearer, consistent wording.

Reviews (6) · Last reviewed commit: "fix(dashboard): keep billing usage empty..."

Comment thread apps/dashboard/app/(main)/billing/components/consumption-chart.tsx Outdated
@izadoesdev

Copy link
Copy Markdown
Member Author

@greptileai

Please re-review final head c7ad920e767b08163c9c942f773c68ca9592266c. Valid findings have been fixed and validated; intentional copy choices and optional refactors are explained in their resolved threads. Please check the final diff for remaining actionable issues.

@izadoesdev

Copy link
Copy Markdown
Member Author

Approval recovery disposition for fff667fbf32b68381c1048167c9e97790b866da5:

The fresh review's general concern describes an existing limitation of #1072: an approval is claimed before message conversion and agent startup, so an early failure can consume an unused approval until expiry. The supported recovery is to verify the action state and obtain a fresh approval. This was documented in the approval review; the dashboard copy slice preserves all four approval implementation/test files byte for byte.

The claim remains consumed after uncertain execution to prevent duplicate writes. The native regression specifically proves retention when the model fails after a successful approved write; it does not claim pre-execution recovery. In the installed SDK, local approved tools run before the model stream starts, so a model-stream failure alone does not establish that the action never ran. A blanket release on stream failure would re-enable replay after successful writes.

I am declining a change to approval outcome/retry semantics in this copy slice. The before-execution recovery limitation remains explicit, and any stronger outcome/retry behavior needs an independently reviewed technical slice.

@izadoesdev

Copy link
Copy Markdown
Member Author

@coderabbitai full review

Please review all 120 scoped files at final head fff667fbf32b68381c1048167c9e97790b866da5, integrated onto current main after #1089. The earlier full-review request was rate-limited and did not complete. This request is after the stated wait; no first full source coverage has been claimed. The original copy changes and aligned E2E selectors are preserved, including merged stage/onboarding behavior. The general approval-recovery concern has an explicit source-supported disposition above; approval source is unchanged. Please check the complete final diff for actionable issues.

@coderabbitai

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor
✅ Action performed

Full review finished.

@izadoesdev

Copy link
Copy Markdown
Member Author

@greptileai

Please re-review final head fff667fbf32b68381c1048167c9e97790b866da5. Valid findings have been fixed and validated; intentional copy choices and optional refactors are explained in their resolved threads. Please check the final diff for remaining actionable issues.

@izadoesdev

Copy link
Copy Markdown
Member Author

Docstring advisory disposition for the completed source review at fff667fbf32b68381c1048167c9e97790b866da5:

The full CodeRabbit review actually selected and reviewed all 120 owned paths and found no actionable issues. Its separate generic docstring check analyzed 44 functions across 50 files, skipped 69 files because of that check's own limit, and reported an inconclusive 2.27%/80% result. That advisory is distinct from the completed 120-file source review.

This slice changes dashboard wording and matching test selectors. Adding bulk docstrings to existing functions would expand its scope without clarifying these changes; the repository has no corresponding required docstring coverage gate. I am declining that advisory. The actual lint, type, test and browser checks remain required on the final integrated head, and the source review's timed-out Greptile check context is covered separately by the completed fresh Greptile review.

@izadoesdev

Copy link
Copy Markdown
Member Author

@greptileai

Please re-review final head 04d0e3215fe30cf7c41d7fea9741816dd94cf964. Valid findings have been fixed and validated; intentional copy choices and optional refactors are explained in their resolved threads. Please check the final diff for remaining actionable issues.

@izadoesdev

Copy link
Copy Markdown
Member Author

Unsupported change-descriptor concern disposition for 04d0e3215fe30cf7c41d7fea9741816dd94cf964:

The fresh Greptile summary asks to add two paths to a website-analytics change descriptor's files array. There is no such descriptor in the repository or the current PR body, and this 120-file slice owns no JSON change manifest. Both apps/dashboard/app/(main)/feedback/components/feedback-list.tsx and apps/dashboard/app/(main)/home/_components/summary-stats.tsx are already in the actual Git diff and in the completed 120-file CodeRabbit review selection.

This appears to concern reviewer grouping metadata (an inference), rather than a product-source defect. I am declining an unsupported repository edit. Both paths and their reviewed diff are preserved; the final integrated head still requires fresh CI and review.

…ashboard

 Sentence case for titles, buttons, menus, labels, and toasts; Create X / Save changes / Try again / Failed to load X; … instead of ...; no em dashes in prose; no 'successfully' or '!' in toasts; one badge variant per status. E2E selectors follow the new labels.
@izadoesdev

Copy link
Copy Markdown
Member Author

@greptileai

Please re-review final head c2d6213268facf3d0aabd5bd7b994241cd121e36. Valid findings have been fixed and validated; intentional copy choices and optional refactors are explained in their resolved threads. Please check the final diff for remaining actionable issues.

@izadoesdev
izadoesdev merged commit 171ae94 into main Oct 6, 2026
18 checks passed
@izadoesdev
izadoesdev deleted the codex/dashboard-copy branch October 6, 2026 07:47

This branch was successfully deployed

3 active and 1 inactive deployments
Preview – databuddy-status — c2d62132 Deployed Oct 6, 2026 by vercel[bot]
Preview – dashboard — c2d62132 Deployed Oct 6, 2026 by vercel[bot]
links - preview — c2d62132 Deployed Oct 6, 2026 by unkey-deploy[bot]
Preview – documentation — c2d62132 Deployed Oct 6, 2026 by vercel[bot]
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.

1 participant