From 3ce3d46baad0c3e85b6e6603628ea777e8d0b9e0 Mon Sep 17 00:00:00 2001 From: Abdullah Sultan Date: Thu, 6 Aug 2026 12:49:52 -0500 Subject: [PATCH] Add DMCA and EU DSA safe-harbor pages, plus an internal abuse runbook MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Crosscode stores files users upload, which makes the provider a hosting service. Both the US §512(c) safe harbor and the DSA hosting regime attach only if specific things are done in advance, and both are conditional on actually acting on a notice. - docs/dmca.md: the six §512(c)(3)(A) notice elements, the designated agent's contact, the §512(g)(3) counter-notice procedure and its 10-14 business day statutory window, and a three-strike repeat-infringer policy. Flags that registering the agent with the Copyright Office is an owner action, not a code change, and that the registration expires after three years — an expired one is legally identical to none. - docs/dsa-contact.md: Art. 11/12 single point of contact (abuse@, English), Art. 16 notice-and-action, Art. 17 statement of reasons, and the Art. 15(2) micro-enterprise transparency exemption stated rather than assumed. Art. 13 EU legal representative marked as consciously deferred. - docs/abuse-handling.md: internal runbook, repo-only, not registered in GENERATED_PAGES and not linked from the footer. Names the actual tables and statements a takedown needs, and ends with ten capability gaps the service cannot currently close — most importantly that deleting one file's changes from the middle of a room's sequence silently breaks the contiguity listChanges relies on, so whole-project deletion is the only safe granularity today. Plumbing: both public pages registered in GENERATED_PAGES, the docs sidebar, the vite rollup inputs, the landing footer's Trust column, and .gitignore (the generated HTML is build output like every other page's). generate-docs.mjs now strips HTML comments before rendering. The renderer runs with html:false, so a `` note left in a source file was being escaped and printed on the published page as visible text. Co-Authored-By: Claude Opus 5 (1M context) --- apps/docs-site/.gitignore | 2 + apps/docs-site/index.html | 2 + apps/docs-site/scripts/generate-docs.mjs | 32 ++- apps/docs-site/vite.config.js | 2 + docs/abuse-handling.md | 288 +++++++++++++++++++++++ docs/dmca.md | 148 ++++++++++++ docs/dsa-contact.md | 149 ++++++++++++ 7 files changed, 620 insertions(+), 3 deletions(-) create mode 100644 docs/abuse-handling.md create mode 100644 docs/dmca.md create mode 100644 docs/dsa-contact.md diff --git a/apps/docs-site/.gitignore b/apps/docs-site/.gitignore index 8bba99b..5280e74 100644 --- a/apps/docs-site/.gitignore +++ b/apps/docs-site/.gitignore @@ -11,6 +11,8 @@ dist /docs/support.html /docs/terms.html /docs/refund-policy.html +/docs/dmca.html +/docs/dsa-contact.html /public/docs/ /public/llms.txt /public/llms-full.txt diff --git a/apps/docs-site/index.html b/apps/docs-site/index.html index e906507..0e98395 100644 --- a/apps/docs-site/index.html +++ b/apps/docs-site/index.html @@ -502,6 +502,8 @@

Trust

Privacy Limitations Terms + Copyright and DMCA + EU DSA contact Support