All notable changes to CDT++ are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 - 2026-08-11
Release summary
CDT++ 1.0.0 is the final planned feature release of the C++23 spherical 2+1-dimensional reference implementation.
- Compatibility: The supported source boundary is C++23 with the published GCC, Clang, AppleClang, and MSVC matrix. The project does not promise a stable binary ABI or package-registry distribution.
- Scientific corrections: The release completes and independently validates all five 2+1D moves, Metropolis-Hastings proposal ratios and atomic transitions, exact-predicate geometry boundaries, run-owned RNG streams, and causal persistence metadata.
- Supported surface: The default build is headless; CGAL/oneTBB bulk Delaunay operations and the macOS Qt viewer are explicit opt-ins. Historical toroidal and higher-dimensional prototypes are excluded from the supported API.
- Limitations: Seeds replay stochastic inputs, not necessarily fresh cospherical CGAL topology. Resumable checkpoints continue the identical Markov chain only on the recorded producer toolchain; they are restart artifacts rather than portable interchange files. Parallelism does not extend to Pachner moves or concurrent manifold access.
- Migration: Active development and new work move to causal-triangulations. After the v1.0.0 GitHub and Zenodo handoff, CDT++ enters a maintenance-only stabilization window and becomes read-only only when the owner completes the archival gate.
Added
- [breaking] Modernize Python experiment workflows def276a
- [breaking] Add offline C++/Rust comparison harness 45b080e
- Restore reproducible archival rendering 2662df9
- [breaking] Expose reported Metropolis transitions 16d1c76
- Add initial-state loading and checkpoint resume e1305d6
Changed
- Expose shared artifact lifecycle helpers 2f3ba57
- Evaluate Boost alternatives to GMP and MPFR 9a02c39
- Harden backend evaluation probes d5c3b71
- Format transition validation f183f07
- Verify unknown moves preserve transition traces 70ab238
- Expect portable producer paths on Windows 5a32b1d
Documentation
- Clean up archival documentation references 703b474
- Exclude PCG shim from generated reference 7e8734f
Fixed
- Serialize Dependabot automation per pull request 7567372
- Deduplicate CodeRabbit review requests by revision 7f23d53
- Bind Dependabot auto-merge to reviewed revision 72fc5a1
- Harden Dependabot review rearming on head updates 5d571c8
- Authenticate CodeRabbit review requests as maintainer 375c9ea
- Require reviewed Dependabot merges and refresh tooling 7c3a84b
- Restore MPFR builds and fail closed on polling errors 1d2e667
- Prevent stale vcpkg 9e8d033
- [breaking] Preserve coincident causal identities 3f72a16
- Harden persistence and vcpkg pin synchronization 3a66693
- Canonicalize complete vertex-cell incidence 52f9a58
- Bound incidence fingerprint canonicalization 307737c
- Harden experiment and repository validation fb7e5b3
- Harden cross-platform validation 6b4d012
- Pin Python for sanitizer bootstrap 9181494
- Refresh portable Python package checks 96baa21
- Preserve local runs when Comet mirroring fails 9cadfe7
- Harden portable harness validation da7ba14
- Select the root vcpkg manifest 1c064fd
- Restore vcpkg binary caching 2b27462
- Track canonical rendering fixture 7078f69
- Harden archival rendering contract 81d366e
- Harden transition and documentation validation e955ee6
- Queue approved Dependabot updates for auto-merge e63e32f
- Enforce v1.0.0 release gates 94ed107
- Fail fast and support Dependabot coverage 2107f20
- Stabilize macOS viewer and coverage gates deb24ab
- Harden checkpoint resume contracts 17bb7fb
- Enforce exact checkpoint continuation 95754c4
- Harden repository readiness contracts 2840437
- Preserve canonical producer paths on Windows 026ba3f
- Harden boundary validation and diagnostics 38be43d
- Preserve complete subprocess diagnostics 94a0c77
Maintenance
- Gate automatic merges on CodeRabbit review 8124227
- Bump the github-actions group with 4 updates #134 55d192d
- Bump the github-actions group with 2 updates #136 90a3ea6
- Automate vcpkg tool pin sync 9631335
- Bump the dependencies group with 3 updates #144 098822d
- Stagger Dependabot update schedules 9cf5b9d
- Bump cryptography from 49.0.0 to 50.0.0 #146 e23d3c4
- Bump taiki-e/install-action #152 426edb8
Added
- Restore optional parallel insertion and removal d4dabbe
- Add value-oriented move-run orchestration abfa888
- [breaking] Add invariant-bearing move preparation e2f7d70
- [breaking] Modernize the CGAL 6.2 integration boundary ae7a39b
- [breaking] Finalize parallel triangulation support 862637a
- [breaking] Publish deterministic C++ oracle fixtures ec53dfa
Changed
- [breaking] Normalize public declarations under cdt a02a732
- Make MoveAlways replay checks deterministic d7fa637
- Own move-run callbacks by value f59c06f
- Make seeded replay fixtures cross-platform 3c322ee
- Make producer path assertion cross-platform 390adf3
Fixed
- Generate GCC 16 reports with LCOV 2.5 324a2aa
- Install LCOV documentation dependencies 42fd262
- Support pkgx-backed IDE environments 3ce8780
- Retain function data during LCOV capture 898a453
- Bound GCC branch inconsistencies c7d6a35
- Keep oneTBB out of ThreadSanitizer 35b241e
- Harden parallel build and provenance 6ef7dd6
- Resolve pkgx certificate bundles before vcpkg a123ab8
- Restore CodeQL extraction and bound parallel builds 56f13cd
- Require fresh fixture provenance 6972970
- Stabilize cross-platform validation b0c3169
- Stabilize Windows and Semgrep validation b282c0b
- Stabilize cached builds and action policy validation 930238a
- Enforce action policy on nested paths 745d402
- Enforce action policy on shorthand steps 406a482
Maintenance
- Suppress ShellCheck for Zsh path expansion 189cc0d
- Bump actions/checkout from 7.0.0 to 7.0.1 397e0b4
- Bump taiki-e/install-action from 2.83.2 to 2.83.4 30c83fd
- Bump github/codeql-action/init from 4.37.0 to 4.37.1 fd04186
- Bump github/codeql-action/analyze from 4.37.0 to 4.37.1 16d8fcd
- Enforce pkgx-first pinned toolchains f01fca6
- Streamline and harden supported build workflows e29f69a
- Update v1.0.0-rc3 release date e8f45ea
Performance
- [breaking] Avoid rebuilding caches during move validation f574f0f
Fixed
- Verify Zenodo delivery for the current tag 05a6e97
Added
- Persist verifiable stochastic run provenance ce90551
Fixed
- [breaking] Enforce atomic moves and validated runtime state #111 4245ac0
- [breaking] Make Metropolis transitions reversible and reproducible #112 1d7269c
- Harden optional Python experiment lifecycle #113 31f95ab
- Enforce causal ergodic move contracts bb53988
- Restore sanitizer and coverage reliability f4c7df9
- Harden ergodic move rejection cec15b5
- Make runtime configuration header self-contained cef03b5
Maintenance
- [breaking] Consolidate develop into main #100 2459016
- Align repository status reporting with main #109 c37fa09
- Add release tooling and repair coverage 1416708
- Update docs/RELEASING.md 26196da