All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
First release carrying the accumulated 0.4.x development line (consolidates the prior Unreleased section).
chilmesh optional-dep pin raised >=0.2.0 → >=1.2.1 in the [gen] and [viz] extras (tracks released chilmesh 1.2.1)..gitattributes export-ignore.element_count backfilled for registry meshes via geometry.count_elements() + idempotent scripts/backfill_element_count.py (#159).random_domain(shape="onion", ...)): oblate-ellipse body with a convex stem nub and a concave root dimple; exterior triangles dropped via a centroid point-in-polygon filter (#59, #93, #101).docs/GENERATOR.md documenting the generator API, supported shapes, and determinism guarantees.Shapes/onion@v1 (registry_data/meshes/Onion.14, 2,200 nodes / 4,123 triangles); total_meshes corrected to 43 (#93).Domain.content_uid boundary-hash UID (#64/#66) — opt-in deterministic geometric identity. Domain.compute_content_uid() returns "boundary-v1:<sha256>" over the canonical convex hull of child-mesh node coordinates (quantized 1e-4°, canonical WKT), or None when no child mesh resolves. Pure-Python (no shapely); helpers in geometry.py. Additive — no SCHEMA_VERSION bump.Manifest.find_domain_by_uid() lookup helper; DOMAIN_CONTENT_UID_PREFIX exported.admesh-domains uid-audit also audits and (with --write) backfills Domain boundary-v1: UIDs..2dm boundary extraction now emits an explicit RuntimeWarning instead of silently returning None (#158).content_uid contract documented in docs/CONTENT_UID.md; pure-Python implementation keeps the base install dependency-free per constitution Principle II.Mesh.kind — Distinguish between complete meshes ("mesh") and boundary-only outlines ("boundary")Mesh.test_case — Mark meshes for use in downstream test suites (boolean; filters via find_meshes(test_case=True))Mesh.uploaded_date — ISO 8601 date when mesh was added to the registryMesh.modified_date — ISO 8601 date when the underlying mesh file last changedkind and test_case query parameters (see find_meshes())"0.2" (additive fields, no breaking changes)scripts/build_site.py and hosted on GitHub Pages via gh-pages branchadmesh-domains domain suggest <mesh-file>):
test_meshes() helper — Fetch all registry meshes marked for testing (see find_meshes(test_case=True))find_meshes() filters for kind and test_case (Issue #7, #11)shapely (optional [hf] extra) for geometry operationsregistry_data/manifest.toml only; auto-suggester is a curation aid, not authoritativeREDISTRIBUTABLE_LICENSESnc_inundation_v6c.grd into WNAT domain (41st mesh)Mesh.license field (defaults all existing meshes to "MIT")find_domains, find_meshes, get_domain, get_mesh)admesh-domains validate, admesh-domains domains, etc.)pyproject.toml and valence_domains/__init__.py, push a git tag v0.X.Y → triggers release.yml to publish PyPI + HFmain → triggers publish-data.yml to HF with tag data-YYYY-MM-DD-<sha7>