Footer and login legal links were stubs (href: "#"). This adds public /privacy, /terms, and /cookies pages so those links go somewhere, using the Figma Content page Template (guide banner + article column) rather than a markdown dump.
Copy is split on purpose: Privacy covers what we collect, MEDLab hosting, and that recommendations are a matching table (not AI). Terms covers licenses, the public templates API, and acceptable use. Cookies covers the session cookie only.
This is not a substitute for university counsel review.
Changes
New marketing routes /privacy, /terms, /cookies sharing LegalDocumentPage (ContentBanner guide variant, heading + paragraph stacks, Figma article type scale)
Footer legal links point to /privacy, /terms, /cookies; login Terms / Privacy links match
Copy in messages/en/pages/{privacy,terms,cookies}.json, registered in index.ts and marketing.ts, with metadata titles
Tests for page chrome and hrefs (tests/pages/legal.test.tsx, Footer, LoginForm)
How to Test
npm run dev and open /privacy, /terms, /cookies
From the marketing footer, confirm Privacy Policy, Terms of Service, and Cookies Settings land on those routes
Open the login modal and confirm Terms of Service and Privacy Policy go to /terms and /privacy
Check the pages at mobile and lg/xl: banner, metadata row, section headings, body column width
On Terms, open the Gitea, CC BY-SA, GPL, and GET /api/templates links
npx vitest run tests/pages/legal.test.tsx tests/unit/legalSyntheticPost.test.ts tests/components/Footer.test.tsx tests/components/LoginForm.test.tsx
Notes
Copy is grounded in current product behavior (magic-link session cookie, Cloudron/MEDLab hosting, Amazon SES for mail, facet-matrix ranking, public GET /api/templates). Counsel should still review before treating these as official.
There is no dedicated legal frame in Figma; layout follows Content page Template 19003:23305 and omits related articles, Ask Organizer, and decorative shapes.
Cookies Settings has nothing to toggle: the only cookie is cr_session.
## Overview
Footer and login legal links were stubs (`href: "#"`). This adds public `/privacy`, `/terms`, and `/cookies` pages so those links go somewhere, using the Figma Content page Template (guide banner + article column) rather than a markdown dump.
Copy is split on purpose: Privacy covers what we collect, MEDLab hosting, and that recommendations are a matching table (not AI). Terms covers licenses, the public templates API, and acceptable use. Cookies covers the session cookie only.
This is not a substitute for university counsel review.
## Changes
- New marketing routes `/privacy`, `/terms`, `/cookies` sharing `LegalDocumentPage` (`ContentBanner` guide variant, heading + paragraph stacks, Figma article type scale)
- Footer legal links point to `/privacy`, `/terms`, `/cookies`; login Terms / Privacy links match
- Copy in `messages/en/pages/{privacy,terms,cookies}.json`, registered in `index.ts` and `marketing.ts`, with metadata titles
- Tests for page chrome and hrefs (`tests/pages/legal.test.tsx`, Footer, LoginForm)
## How to Test
1. `npm run dev` and open `/privacy`, `/terms`, `/cookies`
2. From the marketing footer, confirm Privacy Policy, Terms of Service, and Cookies Settings land on those routes
3. Open the login modal and confirm Terms of Service and Privacy Policy go to `/terms` and `/privacy`
4. Check the pages at mobile and `lg`/`xl`: banner, metadata row, section headings, body column width
5. On Terms, open the Gitea, CC BY-SA, GPL, and `GET /api/templates` links
6. `npx vitest run tests/pages/legal.test.tsx tests/unit/legalSyntheticPost.test.ts tests/components/Footer.test.tsx tests/components/LoginForm.test.tsx`
## Notes
- Copy is grounded in current product behavior (magic-link session cookie, Cloudron/MEDLab hosting, Amazon SES for mail, facet-matrix ranking, public `GET /api/templates`). Counsel should still review before treating these as official.
- There is no dedicated legal frame in Figma; layout follows Content page Template `19003:23305` and omits related articles, Ask Organizer, and decorative shapes.
- Cookies Settings has nothing to toggle: the only cookie is `cr_session`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Overview
Footer and login legal links were stubs (
href: "#"). This adds public/privacy,/terms, and/cookiespages so those links go somewhere, using the Figma Content page Template (guide banner + article column) rather than a markdown dump.Copy is split on purpose: Privacy covers what we collect, MEDLab hosting, and that recommendations are a matching table (not AI). Terms covers licenses, the public templates API, and acceptable use. Cookies covers the session cookie only.
This is not a substitute for university counsel review.
Changes
/privacy,/terms,/cookiessharingLegalDocumentPage(ContentBannerguide variant, heading + paragraph stacks, Figma article type scale)/privacy,/terms,/cookies; login Terms / Privacy links matchmessages/en/pages/{privacy,terms,cookies}.json, registered inindex.tsandmarketing.ts, with metadata titlestests/pages/legal.test.tsx, Footer, LoginForm)How to Test
npm run devand open/privacy,/terms,/cookies/termsand/privacylg/xl: banner, metadata row, section headings, body column widthGET /api/templateslinksnpx vitest run tests/pages/legal.test.tsx tests/unit/legalSyntheticPost.test.ts tests/components/Footer.test.tsx tests/components/LoginForm.test.tsxNotes
GET /api/templates). Counsel should still review before treating these as official.19003:23305and omits related articles, Ask Organizer, and decorative shapes.cr_session.