Repository navigation
Immutable
release. Only release title and notes can be modified.
⚠️ Breaking Changes
- The source fields in
CoordinateConversionError::LinearAlgebraFailure, QualityError::EdgeLength,
RandomPointGenerationError::VectorComputation and
SphericalPointError::AngleComputationFailed now contain Box<LaError>.
Dereference the boxed source for direct inspection or downcast Error::source()
to Box<LaError>. Existing From<LaError> conversions remain available. - Replace the profiling_suite benchmark target with the focused
targets. Use performance-prepare before performance-release and the declarative
performance-readme workflow. Positional performance-release tag pairs and the
publish-readme-performance console command are removed. New paired evidence uses
complete-run history; historical comparison archives remain unchanged. - release-evidence now uses shared file-based selection flags instead of a positional JSON identity; existing adapter manifests require fresh main CI evidence.
- SimplexIntersectionFailure no longer implements Eq. Geometry
and triangulation validation expose typed solver and active-set-budget failures. - EdgeKey and TriangulationAdjacency now carry the const dimension and preserve periodic lattice displacement. VisualizationData gains periodic realization data
and exports schema v2; nonperiodic v1 data remains readable.
fix: correct periodic diagnostics and cover validation boundaries
- Handle point-validation and predicate errors in the runnable SoS examples.
- Preserve topology-aware witnesses in periodic diagnostics and document topology and circumsphere failures.
- Cache exact vertex coordinates for each periodic report and add a validated periodic benchmark.
- Test unsupported geometry and dimensions, malformed storage, reciprocal neighbor slots, and edge-incidence corruption.
- Include the periodic diagnostic regression in feature checks and retain the roadmap's legacy deep link with a focused Markdown exception.
Merged Pull Requests
- Adopt research-repo-tools v0.2.5 #687
- Preserve periodic invariants and harden release boundaries #684
- Align simplicial terminology and inverse move contracts #683
- Preserve periodic vertex identities during realization #682
- Adopt la-stack kernels and support 8D intersections #681
- Streamline validation and automate release preparation #679
- Split profiling and declare performance workflows #678
- Adopt strict Actions and aggregate Rustdoc checks #677
- Adopt published shared tooling and linear algebra releases #675
- Bump the github-actions group with 3 updates #670
Changed
refactor!: split profiling and declare performance workflows
- Preserve all 112 manual diagnostics in six focused benchmark targets with
lazy fixture setup and explicit release-signal membership. - Acquire each revision's original harness through published declarative
workflows, retaining complete samples, provenance and union coverage. - Delegate report promotion and README publication to research-repo-tools,
while preserving Delaunay's scientific and historical-asset policies. - Refresh the WebAssembly and wrapt dependency lock entries.
- [breaking] Adopt la-stack kernels and support 8D intersections #681
e9f4846
refactor!: adopt la-stack kernels and support 8D intersections
- Delegate exact rational dots, provisional column selection, circumsphere
interval solves, and symbolic polynomial determinants to la-stack. - Extend standalone exact simplex intersections through 8D with rational
systems through order ten and explicit solver and work-budget failures. - Preserve exact certification and fallback behavior, and document support
limits and measured performance tradeoffs.
Fixed
-
Preserve periodic vertex identities during realization #682
c97f7fa- Construct periodic comparison coordinates once from canonical vertices and
combined integer offsets, preventing false shared-face intersections. - Keep explicit torus metadata consistent with models that ignore image
offsets, and document the finite-coordinate realization contract.
- Construct periodic comparison coordinates once from canonical vertices and
-
Align simplicial terminology and inverse move contracts #683
6b2c09f
docs: align simplicial terminology with Lickorish
- Define joins, links, closed stars, closure, and relative interior with contextual Lickorish citations.
- Distinguish incident D-simplex support and implicit faces from closed and open stars across topology guides and public API documentation.
- Clarify empty-simplex conventions, lifted periodic identities, and the scope of supported topology operations.
docs: correct inverse Pachner move guidance
- Document the D >= 4 limit for K3Inverse and use K2 to reverse a 3D K3 move.
- Clarify schematic move examples and obtain live edge keys through the triangulation.
- Preserve the stable Lickorish citation anchor with a line-scoped Markdownlint exception.
docs: state inverse k2 dimension requirement
- Document that K2Inverse requires D >= 3 and returns UnsupportedDimension for lower dimensions.
fix: reject unsupported inverse k2 before topology checks #683
- Return UnsupportedDimension from inverse k2 mutation and feasibility checks when D is below 3, before topology preflight.
- Clarify that inverse k1 neighbor-wiring failures restore the triangulation and return a typed invariant error without fan retriangulation.
- [breaking] Preserve periodic invariants and harden release boundaries #684
4d7e9d6
fix!: preserve periodic invariants and harden release boundaries
- Preserve lifted periodic identities through adjacency, traversal, validation, repair, and mesh export.
- Keep topology mutations and publication boundaries coherent, including rollback, vertex-only storage, payload destruction, and checkpoint decoding.
- Strengthen independent geometric, topological, property, and downstream API regression coverage.
- Bind benchmark publication to the configuration and measurement plan used during acquisition.
- Correct scientific and API documentation, remove redundant Rust imports and bounds, and align release tooling checks.
- Include the maintainer's Cargo and Python dependency lockfile updates.
Maintenance
-
Bump the github-actions group with 3 updates #670
4f6766bBumps the github-actions group with 3 updates: github/codeql-action/upload-sarif,
github/codeql-action/init and github/codeql-action/analyze.Updates
github/codeql-action/upload-sariffrom 4.38.3 to 4.39.0Updates
github/codeql-action/initfrom 4.38.3 to 4.39.0Updates
github/codeql-action/analyzefrom 4.38.3 to 4.39.0 -
[breaking] Adopt published shared tooling and linear algebra releases #675
f50e13e- Adopt research-repo-tools 0.2.4 and la-stack 0.5.2 in every maintained
environment and lockfile, preserving the exact arithmetic feature policy. - Modernize just update to upgrade tools before dependencies and audit all
maintained locks without repeating bootstrap. - Keep Semgrep on the locked Python environment through a temporary,
version-bounded override pending the upstream 0.2.5 fix. - Refresh uv, Rust and Python development dependencies and adapt the profiling
harness to sysinfo's fallible constructor. - Box linear algebra error sources to preserve compact nested error layouts
while retaining typed conversions and source inspection.
- Adopt research-repo-tools 0.2.4 and la-stack 0.5.2 in every maintained
-
Adopt strict Actions and aggregate Rustdoc checks #677
3444210- Enforce explicit action identities and exact authentication commits across
workflows and composite actions through the published shared checker. - Scan Rustdoc and Markdown Rust examples alongside existing native and prose
checks while preserving production-only rule scopes. - Retain valid reports after failed scans and upload SARIF only when the
current attempt publishes a complete generation. - Track replacement of the temporary Semgrep scope and retention bridge in
research-repo-tools#171 and Delaunay #676.
- Enforce explicit action identities and exact authentication commits across
-
[breaking] Streamline validation and automate release preparation #679
f6ebaed
ci!: streamline validation and automate release preparation
- Run portable checks once while retaining native platform validation and exact-main release evidence
- Adopt shared release tooling for frozen Cargo evidence, asset handoffs, and citation-date changelogs
- Prepare verified stable drafts after tag pushes and dispatch release benchmarks at the exact tag
- Verify evidence before tagging and refresh benchmark and notebook dependencies
- Adopt research-repo-tools v0.2.5 #687
317a114
build: adopt research-repo-tools 0.2.5 scanner policy
- Resolve the published package and exact Semgrep extra on the common Python baseline.
- Replace temporary scanner and Rustdoc adapters with public scope and retention APIs.
- Verify report digests before SARIF upload and retain native consumer regressions.
docs: adopt shared performance and changelog rendering fixes
- Regenerate mutable performance views from retained measurements and publish rustdoc-safe links.
- Retain only the frozen report exemption and verify publication with missing first-run assets.
- Restore truncated migration notes through shared changelog generation and preserve all 34 release versions and dates.
fix(ci): enforce report verification and simplify publication
- Fail the SARIF gate when current report verification fails and invalidate local attempt markers before scanning.
- Remove the obsolete README formatter and check LF/CRLF publication with the pinned Markdown validator.
- Align Codacy with generated HTML report ownership and fix an issue-reference heading false positive.
fix: normalize Semgrep output before invalidating reports
- Use the scanner's pathlib rules for marker invalidation and scan output
- Cover trailing slashes, redundant separators, and dot components
- Preserve retained reports while rejecting stale evidence after precondition failures
fix: avoid environment sync before report invalidation
- Resolve Semgrep output with locked execution and synchronization disabled
- Keep marker invalidation ahead of the scanner's environment synchronization