From bcec617e792c69130df80d9a02dd72fc5c1c4c00 Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Tue, 27 Oct 2026 15:58:21 -0700 Subject: [PATCH] fix(legal): link the Terms and Privacy pages from the landing footer and signup (TASK-530) The /terms and /privacy routes shipped in #2709, but nothing on the site linked to them. The landing footer's legal column held only the license, and the signup form had no link. Add both: footer links to /terms and /privacy, and the signup form links to them under the sign-in hint. en and zh-CN keys added for each. A signup test asserts the links. Co-Authored-By: Claude Haiku 5.5 Co-authored-by: swift Agent-Model: claude/claude-haiku-5-5/default --- frontend/src/i18n/locales/en.json | 4 ++++ frontend/src/i18n/locales/zh-CN.json | 4 ++++ frontend/src/v2/__tests__/V2Register.test.tsx | 7 +++++++ frontend/src/v2/components/V2Register.tsx | 5 +++++ frontend/src/v2/landing/V2LandingPage.tsx | 2 ++ 5 files changed, 22 insertions(+) diff --git a/frontend/src/i18n/locales/en.json b/frontend/src/i18n/locales/en.json index 727cc96eb0..42ad7501a4 100644 --- a/frontend/src/i18n/locales/en.json +++ b/frontend/src/i18n/locales/en.json @@ -355,6 +355,8 @@ "submit": "Create account", "creating": "Creating account...", "alreadyHaveAccount": "Already have an account?", + "terms": "Terms", + "privacy": "Privacy Policy", "errors": { "failed": "Registration failed." }, @@ -1039,6 +1041,8 @@ "twitter": "X / Twitter", "legal": "Legal", "license": "License (Apache-2.0)", + "terms": "Terms", + "privacy": "Privacy", "copyright": "© {{year}} Commonly. Code licensed under Apache-2.0; the Commonly name and logo are trademarks of the Commonly project." } }, diff --git a/frontend/src/i18n/locales/zh-CN.json b/frontend/src/i18n/locales/zh-CN.json index e9260fe305..c649d09010 100644 --- a/frontend/src/i18n/locales/zh-CN.json +++ b/frontend/src/i18n/locales/zh-CN.json @@ -355,6 +355,8 @@ "submit": "注册", "creating": "正在注册…", "alreadyHaveAccount": "已有账号?", + "terms": "服务条款", + "privacy": "隐私政策", "errors": { "failed": "注册失败。" }, @@ -1038,6 +1040,8 @@ "twitter": "X / Twitter", "legal": "法律信息", "license": "许可证(Apache-2.0)", + "terms": "服务条款", + "privacy": "隐私政策", "copyright": "© {{year}} Commonly。代码采用 Apache-2.0 许可;Commonly 名称和标志是 Commonly 项目的商标。" } }, diff --git a/frontend/src/v2/__tests__/V2Register.test.tsx b/frontend/src/v2/__tests__/V2Register.test.tsx index 6c303f46d1..0030d559b3 100644 --- a/frontend/src/v2/__tests__/V2Register.test.tsx +++ b/frontend/src/v2/__tests__/V2Register.test.tsx @@ -220,6 +220,13 @@ describe('V2Register', () => { // a stranger with no code read hosting as locked. The code unlocks hiring from // the catalog (the cloudAgents entitlement), and the copy says that, in both // languages. + it('links the signup form to the public Terms and Privacy pages (TASK-530)', async () => { + renderRegister(); + + expect(await screen.findByRole('link', { name: 'Terms' })).toHaveAttribute('href', '/terms'); + expect(screen.getByRole('link', { name: 'Privacy Policy' })).toHaveAttribute('href', '/privacy'); + }); + it('never tells a stranger the invitation code unlocks hosting', async () => { renderRegister(); diff --git a/frontend/src/v2/components/V2Register.tsx b/frontend/src/v2/components/V2Register.tsx index ba14429a24..c9cd3bbec9 100644 --- a/frontend/src/v2/components/V2Register.tsx +++ b/frontend/src/v2/components/V2Register.tsx @@ -244,6 +244,11 @@ const V2Register: React.FC = () => { {' '} {t('auth.login.submit')} +
+ {t('auth.register.terms')} + {' · '} + {t('auth.register.privacy')} +
); diff --git a/frontend/src/v2/landing/V2LandingPage.tsx b/frontend/src/v2/landing/V2LandingPage.tsx index eaa8b11ea1..66eb936c5e 100644 --- a/frontend/src/v2/landing/V2LandingPage.tsx +++ b/frontend/src/v2/landing/V2LandingPage.tsx @@ -964,6 +964,8 @@ const V2LandingPage: React.FC = () => {
{t('landing.footer.legal')}
+ {t('landing.footer.terms')} + {t('landing.footer.privacy')} {t('landing.footer.license')}