Skip to content

v0.8.4

Latest

Choose a tag to compare

@acgetchell acgetchell released this 03 Nov 15:18
Immutable release. Only release title and notes can be modified.
0ae37e2

⚠️ 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

  • [breaking] Split profiling and declare performance workflows #678
    5b31cb3

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.
  • 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
    4f6766b

    Bumps 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-sarif from 4.38.3 to 4.39.0

    Updates github/codeql-action/init from 4.38.3 to 4.39.0

    Updates github/codeql-action/analyze from 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 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.
  • [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