Skip to content

fix(app): strip trailing slash from custom vendor website URLs (CS-398)#3500

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
chas/custom-vendor-url-format
Open

fix(app): strip trailing slash from custom vendor website URLs (CS-398)#3500
github-actions[bot] wants to merge 1 commit into
mainfrom
chas/custom-vendor-url-format

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

This is an automated pull request to merge chas/custom-vendor-url-format into dev.
It was created by the [Auto Pull Request] action.


Summary by cubic

Standardizes custom vendor website input by cleaning domains (remove protocol, www, and trailing slashes) and validating the cleaned value. This prevents false “invalid URL” states and ensures consistent display and saving.

  • Bug Fixes
    • Added cleanDomainInput and used it for display, change handlers, and touched-invalid checks.
    • Updated and exported isValidDomain to validate the cleaned domain; allows empty, rejects paths/spaces, requires a dot.
    • On save, re-adds https:// to cleaned values for storage.
    • Added unit tests for cleanDomainInput and isValidDomain.

Written for commit 8b3427d. Summary will update on new commits.

Review in cubic

@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
app Ready Ready Preview, Comment Jul 24, 2026 3:01pm
comp-framework-editor Ready Ready Preview, Comment Jul 24, 2026 3:01pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
portal Skipped Skipped Jul 24, 2026 3:01pm

Request Review

@chasprowebdev chasprowebdev changed the title [dev] [chasprowebdev] chas/custom-vendor-url-format fix(app): strip trailing slash from custom vendor website URLs Jul 24, 2026
@chasprowebdev chasprowebdev changed the title fix(app): strip trailing slash from custom vendor website URLs fix(app): strip trailing slash from custom vendor website URLs (CS-398) Jul 24, 2026
@linear

linear Bot commented Jul 24, 2026

Copy link
Copy Markdown

CS-398

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

1 issue found across 2 files

Confidence score: 3/5

  • In apps/app/src/app/(app)/setup/components/OnboardingStepInput.tsx, cleanDomainInput can turn pasted URLs with surrounding whitespace into a double-protocol value (e.g., preserving https:// then adding another), which can produce invalid domains and break onboarding URL handling; trim before protocol normalization (or normalize after final trim) to de-risk this path.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="apps/app/src/app/(app)/setup/components/OnboardingStepInput.tsx">

<violation number="1" location="apps/app/src/app/(app)/setup/components/OnboardingStepInput.tsx:539">
P2: Pasting a protocol URL with surrounding whitespace stores a double protocol. Because trimming occurs after the protocol replacement, `cleanDomainInput(' https://example.com ')` leaves `https://example.com`; the caller then prepends another `https://`, and the malformed value is persisted for the vendor. Trimming before stripping the protocol would keep this input valid.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

// Helper to strip protocol, www, and trailing slashes from a website URL,
// leaving just the bare domain for display/validation
export const cleanDomainInput = (raw: string): string => {
return raw

@cubic-dev-ai cubic-dev-ai Bot Jul 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2: Pasting a protocol URL with surrounding whitespace stores a double protocol. Because trimming occurs after the protocol replacement, cleanDomainInput(' https://example.com ') leaves https://example.com; the caller then prepends another https://, and the malformed value is persisted for the vendor. Trimming before stripping the protocol would keep this input valid.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/app/src/app/(app)/setup/components/OnboardingStepInput.tsx, line 539:

<comment>Pasting a protocol URL with surrounding whitespace stores a double protocol. Because trimming occurs after the protocol replacement, `cleanDomainInput(' https://example.com ')` leaves `https://example.com`; the caller then prepends another `https://`, and the malformed value is persisted for the vendor. Trimming before stripping the protocol would keep this input valid.</comment>

<file context>
@@ -533,12 +533,24 @@ const normalizeVendorName = (name: string): string => {
+// Helper to strip protocol, www, and trailing slashes from a website URL,
+// leaving just the bare domain for display/validation
+export const cleanDomainInput = (raw: string): string => {
+  return raw
+    .replace(/^(https?:\/\/)+/gi, '')
+    .replace(/^(www\.)+/gi, '')
</file context>
Suggested change
return raw
return raw.trim()
Fix with cubic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant