Changelog
A record of notable changes to ProjectUSC.org.
Notable changes to ProjectUSC.org. Versions follow CalVer (`YYYY.MM.DD`).
The published page lives at <https://projectusc.org/changelog/>.
2026.04.27 (2026-04-27)
Changed
- Refreshed USC data from OLRC release point **119-84** (was 119-73). 60,414 sections across 53 titles.
Infrastructure
- Migrated this repo and `data-usc` from Fossil to Git, hosted at <https://source.inkdt.net/projectusc/>.
- `/changelog/` is now rendered from a hand-curated `CHANGELOG.md` (Keep-a-Changelog style) instead of being generated from Fossil tags + tickets.
- Issue tracking moved to Forgejo at <https://source.inkdt.net/projectusc/website/issues>.
2026.04.17 (2026-04-17)
Added
- Privacy-respecting analytics (Umami) on every page; configurable via `UMAMI_URL` / `UMAMI_WEBSITE_ID` env vars.
- SVG favicon (navy section mark on stone).
- SEO foundations: canonical URLs, meta description, OpenGraph, Twitter Card, and `meta name=author` on every page.
- schema.org JSON-LD: `BreadcrumbList` site-wide, `Legislation` on USC section pages, `WebSite` with `SearchAction` on the homepage.
- `SITE_URL` env var to override the canonical origin for staging builds.
- Auto-generated `/changelog/` page.
Changed
- Refactored `scripts/common.py` into a `scripts/common/` package: `text`, `data`, `nodes`, `layouts`, `types`. Existing import surface preserved.
- Unified the content-node renderer between USC and Constitution builders behind `common.render_content_nodes(nodes, opts)`.
- USC module now owns every page under `/usc/` (index, stats, sections-index JSON); `build_site.py` no longer reaches into `../data-usc/`.
- `build_citations.py` is now part of the main pipeline; reverse citation index ships with each build.
- `build_site.py` invokes Pagefind automatically; pass `--no-pagefind` to skip the ~2-minute search-index step.
Infrastructure
- 79-test stdlib `unittest` suite covering `common.text`, `common.nodes`, `common.layouts`, and the changelog renderer.
- TypedDict contracts in `common/types.py` for `meta.json` shapes; mypy-clean on `common/`.
- `SIMPLE_SEC_RE` deduplicated into `common`.
2026.04.09 (2026-04-09)
Added
- Initial release: free, searchable text of all 54 United States Code titles (60K+ sections) and the U.S. Constitution.
- Citation-aware search with aliases, popular names, and section-heading matches.
- Section outline, cross-reference previews, cited-by index, keyboard navigation.
- Localized in-page search, reading progress bar, copy-link anchors.
- CalVer versioning (`YYYY.MM.DD`).