🐛 Fixed LinkedIn company and school URLs with underscores being rejected as invalid - #30490
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: QUIET Plan: Team Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📜 Recent review details⏰ Context from checks skipped due to timeout. (12)
🧰 Additional context used📓 Path-based instructions (7)Review Admin UI for existing Shade reuse, correct component layer, semantic tokens, accessible interaction states, and whole-sentence translations.⚙️ CodeRabbit configuration file Files:
Review whether tests prove changed behaviour, meaningful error/edge paths, and externally observable contracts without coupling to implementation details.⚙️ CodeRabbit configuration file Files:
Review lens: "where does this data become trusted?" Boundary data (HTTP input, external API/SDK responses, env/config, DB/filesystem reads, queue/webhook/event payloads) is `unknown` until validated — Zod by default.⚙️ CodeRabbit configuration file Files:
Prioritise concrete correctness, security, data-integrity, compatibility, and regression risks.⚙️ CodeRabbit configuration file Files:
Type-safe boundaries: Fail only if the PR: consumes boundary data (HTTP input, external API/SDK responses, env/config, DB/filesystem reads, queue/webhook/event payloads) without validating it first — Zod by default, another format only wher...📄 CodeRabbit inference engine (Custom checks) Files:
Build new features in React, use `admin-x-framework` for APIs, and use Shade for UI.📄 CodeRabbit inference engine (AGENTS.md) Files:
Always use `pnpm`, never npm or Yarn.📄 CodeRabbit inference engine (AGENTS.md) Files:
🔇 Additional comments (2)
WalkthroughLinkedIn validation now uses a dedicated username rule for Suggested reviewers: Merge Risk: ⚪ Minimal · up to LinkedIn company and school URLs with underscores are now accepted while personal profile URLs retain their existing restrictions. The intended behavior is covered without an identified merge-readiness risk. 🚥 Pre-merge checks | ✅ 6✅ Passed checks (6 passed)
Full details: Type-Safe BoundariesExplanation The PR changes only the typed LinkedIn Full details: New Files Are TypescriptExplanation The PR changes only two pre-existing TypeScript files: ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
| Command | Status | Duration | Result |
|---|---|---|---|
nx run @tryghost/admin:test:acceptance |
✅ Succeeded | 8m 10s | View ↗ |
💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗
☁️ Nx Cloud last updated this comment at 2026-09-03 09:51:50 UTC

Summary
https://www.linkedin.com/company/eyeshot_2/) were rejected with "Your Username is not a valid LinkedIn Username"_in addition to hyphens; personal/in/and/pub/profiles stay hyphen-onlyeyeshot_2/ underscore company+school URLs, and for rejecting underscores on personal handlesHistory
This is not a new limitation — an earlier fix never landed after the social-validator refactor.
_in company/school URLs — used exactlyeyeshot_2as the example#29051only covered the unicode issue (ONC-1856/#29022). Closing#28893as fixed was a miss: the refactor setextra: '-'(hyphen only) and never added_.#28893itself cannot be revived — it patches the pre-refactoradmin-x-settingsvalidator/tests that no longer exist.Test plan
pnpm test:unit src/settings/utils/social-urls/social-urls.test.ts(100 passed)https://www.linkedin.com/company/eyeshot_2//in/john_smithis still rejected