Files
hanzo.ai/app/(marketing)/legal/page.tsx
zeekayandHanzo Dev 555652c860 the eleven legal documents are readable, and /trust stops promising 404s
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]>
2026-08-23 20:02:30 -07:00

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>
)
}