common/ had become the backend's library: 30 of its 41 modules were
imported by nothing in the frontend, so the name no longer said what
belonged there. It now holds only what the frontend or the build imports
too; backend-only code moved to server/, flat except for datasets/ (the
dataset engine and its readers). The *-db/ dataset directories stay in
common/: self-hosting docs and Docker volumes mount those paths.
frontend/utils/ keeps its app-wide modules at the root and gains ip/
(IP / ASN shaping and validation), report/ (the report pipeline) and
features/ (the pure layer of a single feature). Paths only — no logic
changes. The Dockerfile copies server/, and the AGENTS.md files say where
a new module goes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Translate README_ZH into Taiwan-terminology Traditional Chinese, link it
from every README's language switcher next to Simplified Chinese, extend
the language-support line in all five, and count it among the maintained
READMEs in CONTRIBUTING.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Backfill zh-TW across all 163 changelog entries with Taiwan terminology
aligned to the UI pack, flip the registry status to full and group the
locale under Simplified Chinese as plain 繁體中文, add the zh-TW boot
copy index.html requires of full locales, and update the full-locale
enumerations in the contributor docs (including the stale 161-entry
changelog count).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The contributor docs read as if the project and the hosted site were one
thing; a "(demo: …)" tag makes clear IPCheck.ing is one deployment of a
toolbox anyone can self-host.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
SECURITY.md used to ask for vulnerability reports in public issues while
requesting no public disclosure in the same breath; it now points at
GitHub's private advisory form, states the latest-release-only support
policy and scopes out non-code findings. The Code of Conduct's
enforcement contact — a literal blank since the file landed — now uses
the same private form. New SUPPORT.md and an issue-chooser config send
questions to Discussions Q&A and docs before they become issues, and
CONTRIBUTING drops its stale "questions also go to Issues" line.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
TRANSLATING.md walks a contributor from pnpm i18n-new to a mergeable
partial pack: the skeleton convention, the registry line, what the gate
enforces, the fallback chain users see, and the beta-to-full promotion
bar. CONTRIBUTING flips its "adding a locale is heavier than it looks"
warning into an invitation, AGENTS.md restates the i18n rule in
full/beta terms, and the README points translators at the guide.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The READMEs — the project's highest-traffic pages — carried no
contribution invitation. All four gain a short Contributing section
pointing at the good-first-issue label and CONTRIBUTING.md, which now
also documents community-maintained README translations (English stays
canonical) as a starter area distinct from UI translations.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
CONTRIBUTING now reflects the real workflow (pnpm-only setup, dev-in
dev-out, pnpm check) and points contributors at the AGENTS.md files
and the online Developer Guide. The bug report template drops
self-host-only fields most reporters can't fill; the PR checklist
shrinks to five verifiable items.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>