mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
content/legal holds terms, dpa, privacy, acceptable-use, research-contribution, consumer-health, research-api, subprocessors, cookies, biometric-voice and the Trust Center index. They have been committed for months and the site rendered none of them. /trust -- the page a security reviewer reads -- offered the Data Processing Addendum at /dpa and the subprocessor register at /subprocessors, described both as published so "a reviewer reads them without asking and without waiting", and both addresses 404'd. The 48 /legal/* cross-links the documents make to each other all dangled too. /legal/<slug> publishes all ten plus the index; the export goes 939 -> 950 pages, and every cross-link now resolves (measured: 10 distinct, 0 dangling). /trust points at /legal/dpa and /legal/subprocessors. THE STATUS IS RENDERED, NEVER HIDDEN. Every one of these is a draft pending counsel, and each page says so above the text, from the document's own front matter. A reviewer relying on unexecuted terms because a page implied otherwise is the failure /trust is written to prevent. e2e/gates/links.spec.ts is the gate that would have caught this: no page in the export links to an address the export does not serve. Mutation-checked in both directions -- it names the dangling URL and the page carrying it. 102 gates now, from 100. One dependency, marked, for the markdown; the pnpm overrides block was checked before and after the install because that manifest silently lost its security pins once before. Front matter is split rather than YAML-parsed: fixed shape, authored here, split on the first colon because a summary contains several. NOT RESOLVED, AND NAMED: /privacy, /terms and /cookies are hand-written TSX that predate the markdown stack, and they are DIFFERENT DOCUMENTS rather than stale renderings -- the TSX privacy policy is thirteen generic sections including one on SMS, the markdown one is nineteen covering Enso routing, the four data-use states, Verified Commons and US-state and European disclosures. Which is effective is counsel's decision, not a layout pass's, so both stand and both say what they are. Build green, 102/102 gates, /legal and /legal/dpa rendered at 1440 and 390. Co-authored-by: Hanzo Dev <[email protected]>
28 lines
783 B
TypeScript
28 lines
783 B
TypeScript
import { Page, PageHero, Prose, Section } from '@/components/marketing/page-kit'
|
|
import { legalIndex } from '@/lib/legal'
|
|
|
|
/**
|
|
* The Legal & Trust Center index — `content/legal/index.md`, rendered.
|
|
*
|
|
* It is the document's own table of contents, so it is not restated here: the
|
|
* links it makes to its siblings are the ones the file already carries, and
|
|
* they resolve because [slug] publishes every one of them.
|
|
*/
|
|
|
|
export const metadata = {
|
|
title: 'Legal & Trust Center — Hanzo',
|
|
description: legalIndex().summary,
|
|
}
|
|
|
|
export default function LegalIndexPage() {
|
|
const doc = legalIndex()
|
|
return (
|
|
<Page>
|
|
<PageHero eyebrow="Legal" title={doc.title} lede={doc.summary} />
|
|
<Section>
|
|
<Prose html={doc.html} />
|
|
</Section>
|
|
</Page>
|
|
)
|
|
}
|