# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

Generated by [`git-cliff`](https://github.com/orhun/git-cliff).

## v0.0.1 - 2026-03-23

### Added

- **refactor: separate is_valid from is_delaunay, add test coverage, harden test guards**
  [`c0c8236`](https://github.com/acgetchell/causal-triangulations/commit/c0c8236)

  - Separate is_valid() (Levels 1-3 structural/topological via
  as_triangulation().validate()) from is_delaunay() (Levels 1-4
  including Delaunay property) so the two checks are distinct
  - Rename test_is_valid_checks_coherent_orientation to
  test_is_valid_runs_structural_validation with accurate comment
  - Add @pytest.mark.skipif guard on TestRunGitCommand for environments
  without git (consistent with existing TestRunCargoCommand pattern)
  - Add check_git_repo() guard in test_get_git_remote_url_returns_url
  before calling run_git_command(["remote"])
  - Port test_benchmark_models.py from delaunay repo (22 tests for
  benchmark data models, parsing, and formatting)
  - Port test_changelog_tag_size_limit.py from delaunay repo (7 tests
  for 125KB GitHub tag annotation limit handling, adapted to use
  synthetic content since CDT has no released versions yet)

- **refactor: improve error types, simplify trait bounds, and re-enable determinism test**
  [`2fe2953`](https://github.com/acgetchell/causal-triangulations/commit/2fe2953)

  - Add ValidationFailed error variant with structured check/detail fields
  and diagnostic context (V/E/F counts) for geometry, topology, and
  Delaunay validation failures
  - Replace InvalidParameters with ValidationFailed in validate() and
  validate_topology() to distinguish runtime validation from bad input
  - Use InvalidGenerationParameters in factory functions (from_random_points,
  from_seeded_points) for consistency with generate_delaunay2_with_context
  - Remove unnecessary + 'static bounds from all DataType where clauses
  in DelaunayBackend (upstream DataType already implies owned data)
  - Merge two inherent impl blocks for DelaunayBackend into one by
  dropping the redundant serde bound on is_delaunay() and topology_kind()
  - Move function-scoped imports to module level in metropolis tests
  - Re-enable seeded_determinism_property proptest (RobustKernel +
  DelaunayTriangulationBuilder resolved the FastKernel non-determinism)
  - Update Cargo.lock from cargo update (51 packages)
  - Update justfile, Python scripts, and dev docs

- **Added: Convex hull and boundary edge computation.** [`0c6c328`](https://github.com/acgetchell/causal-triangulations/commit/0c6c328)

  Adds triangulation operations for computing the convex hull
  and boundary edges of a triangulation.

  Improves `delaunay` backend validation to avoid flakiness due
  to strict neighbor pointer checks. Now uses basic structural
  validation.

  Updates `delaunay` dependency to v0.6.2 and `arc-swap` to v1.8.0.

- **Adds: Kani CI workflow and Python linting to justfile** [`5fce5ee`](https://github.com/acgetchell/causal-triangulations/commit/5fce5ee)

  Adds a Kani CI workflow for formal verification, including fast and
  full verification jobs. Also, introduces Python linting with Ruff to
  the justfile for code quality checks.

  Updates the setup process to include Python linting tools and
  configures the pyproject.toml file with Ruff dependencies. Enhances
  the README with Kani workflow behavior details.

- **Added: Performance analysis scripts and workflow** [`d6994db`](https://github.com/acgetchell/causal-triangulations/commit/d6994db)

  Adds performance analysis workflow using Criterion.rs benchmarks and a
  Python analysis script.

  The workflow:
  - Runs benchmarks on PRs and the main branch
  - Detects regressions with configurable thresholds
  - Generates reports and posts comments to PRs
  - Saves baselines for tracking performance over time

  Also includes changes to clippy workflow to install clippy-sarif
  tools with the toolchain and adds a script to find good seeds.

- **Added: Performance analysis scripts and workflow** [`e1cf749`](https://github.com/acgetchell/causal-triangulations/commit/e1cf749)

  Adds Python scripts and Justfile recipes for performance
  analysis, baselining, and reporting.  Includes CI integration
  for performance monitoring and regression detection.
  Also adds property-based tests for core algorithms using proptest.

- **Added: Initial project files and structure** [`2e40c54`](https://github.com/acgetchell/causal-triangulations/commit/2e40c54)

  Adds the initial files for the causal-dynamical-triangulations
  project, including code of conduct, contributing guidelines,
  project structure, and essential tooling setup with Just.
  This provides a foundation for community contribution
  and project maintainability.

- **Added: Initial CDT property validation framework** [`fb5da74`](https://github.com/acgetchell/causal-triangulations/commit/fb5da74)

  Adds functions to validate CDT topology, causality, and
  foliation constraints. Placeholder implementations are used
  initially, with TODOs for full implementation. Also adds
  parameter validation to the Delaunay backend.

- **Added: Configures logging and error handling** [`45df1b3`](https://github.com/acgetchell/causal-triangulations/commit/45df1b3)

  Introduces `env_logger` for logging and a custom `CdtError` enum
  for structured error handling throughout the CDT library.

  This change enhances debuggability and provides a consistent way
  to manage and propagate errors. It also prepares the groundwork
  for more robust error reporting and handling in the future.

- **Added: Implements CDT core logic and simulation framework** [`6a7c4be`](https://github.com/acgetchell/causal-triangulations/commit/6a7c4be)

  This commit introduces the core logic for Causal Dynamical
  Triangulations (CDT) including action calculation, ergodic moves,
  and a Metropolis-Hastings simulation framework.

  It adds modules for:
  - Calculating the 2D Regge Action (`cdt/action.rs`).
  - Implementing ergodic moves like (2,2), (1,3), and edge flips
  (`cdt/ergodic_moves.rs`).
  - Metropolis-Hastings algorithm for Monte Carlo sampling
  (`cdt/metropolis.rs`).
  - Causal triangulation data structures (`triangulations/causal.rs`)
  - Basic command line argument handling via `clap`.

  Also includes basic utility functions and integrates `approx` for
  testing.  The `justfile` is updated to run toml validation from the
  `scripts` directory, and a python version constraint is set.

- **Added: Configures Dependabot for GitHub Actions and Cargo** [`f072a82`](https://github.com/acgetchell/causal-triangulations/commit/f072a82)

  Configures Dependabot to automatically create pull requests
  for outdated GitHub Actions and Cargo (Rust) dependencies,
  improving dependency management and security.

  Also, adds CI workflow and code coverage workflows. Sets up
  linting checks for Rust, Python, Shell, Markdown, and YAML
  files. Improves code quality and ensures consistency.

- **ci: add missed unused function** [`fe7670c`](https://github.com/acgetchell/causal-triangulations/commit/fe7670c)

- **Add .codecov.yml and update dependencies in Cargo.lock** [`a2aa78a`](https://github.com/acgetchell/causal-triangulations/commit/a2aa78a)

  - Added a new file `.codecov.yml` to the repository.
  - Updated the version of `libc` to `0.2.151`, `syn` to `2.0.41`, and `zerocopy` and its derive crate to `0.7.31`.
  - Removed an unnecessary line at the end of the file `src/triangulations/dcel.rs`.

- **Add Security audit badge** [`0cc6efd`](https://github.com/acgetchell/causal-triangulations/commit/0cc6efd)

- **Add triangulation2** [`628aff1`](https://github.com/acgetchell/causal-triangulations/commit/628aff1)

- **feat: Add generate_random_delaunay2 function** [`c79e2b0`](https://github.com/acgetchell/causal-triangulations/commit/c79e2b0)

  This commit adds the `generate_random_delaunay2` function to the codebase. This function generates a random Delaunay triangulation with a specified number of
  vertices. The function uses the `spade` library to perform the triangulation.

  The `generate_random_delaunay2` function takes in the number of vertices as an argument and returns a result containing the generated triangulation or an
  insertion error if there was a problem inserting points into the triangulation.

  The implementation of this function includes changes to multiple files, including `src/lib.rs` and `src/triangulation.rs`.

- **Update dependencies versions in Cargo.lock and add random point generation to triangulation.rs**
  [`f534a5e`](https://github.com/acgetchell/causal-triangulations/commit/f534a5e)

  - Update serde version from 1.0.190 to 1.0.192
  - Update serde_derive version from 1.0.190 to 1.0.192
  - Update syn version from 2.0.38 to 2.0.39
  - Add generate_random_vertex function for generating random points in the grid
  - Modify generate_random_delaunay2 function to use generate_random_vertex function for inserting points into the triangulation
  - Add test case for random_point_construction in tests module

- **Add clippy and kani CI badges to README.md** [`78246de`](https://github.com/acgetchell/causal-triangulations/commit/78246de)

  The commit adds the clippy and kani CI badges to the README.md file. This change helps provide visibility into the code quality and continuous integration
  status of the project.

- **Add print statement to display the number of triangles** [`de1ce9d`](https://github.com/acgetchell/causal-triangulations/commit/de1ce9d)

  This commit adds a print statement to display the number of triangles in the triangulation.

- **feat: Add rand crate as a dependency** [`fa4df1b`](https://github.com/acgetchell/causal-triangulations/commit/fa4df1b)

  This commit adds the `rand` crate as a dependency in the `Cargo.toml` file. The version added is 0.8.5.

  The `rand` crate is used for generating random triangles for the triangulation.

- **Update syn version to 2.0.35, cspell.json with new words, and add a test for run function.**
  [`76281a6`](https://github.com/acgetchell/causal-triangulations/commit/76281a6)

  - Update syn version from 2.0.33 to 2.0.35 in Cargo.lock.
  - Add new words "aarch", "acgetchell", "anstream", "colorchoice", "gnullvm", "msvc", "strsim", "wincon" to cspell.json.
  - Add a test for the run function in src/lib.rs.

  This commit updates dependencies and adds a test case for the run function.

- **feat: Add support for timeslices in CLI** [`a5c704d`](https://github.com/acgetchell/causal-triangulations/commit/a5c704d)

  This commit adds support for specifying the number of timeslices in the command-line interface (CLI). The `Config` struct now includes a `timeslices` field,
  and the `run` function accepts a `Config` object as an argument. The CLI tests have been updated to include the `-t/--timeslices` option.

- **Create LICENSE** [`edffe14`](https://github.com/acgetchell/causal-triangulations/commit/edffe14)

- **Added useful and passing Kani verification** [`a78c792`](https://github.com/acgetchell/causal-triangulations/commit/a78c792)

  - Modified the verification module in lib.rs to include a new function for triangle containment using constructed vertices.
  - Added "powif" and "sqrtf" to the cspell.json file.
  - Updated the description in the README.md file.

- **feat: Add command line argument for number of vertices** [`0b89a88`](https://github.com/acgetchell/causal-triangulations/commit/0b89a88)

  This commit adds a new command line argument `number_of_vertices` to the CLI. The user can now specify the number of vertices for the triangulation. The
  minimum value allowed is 3.

- **Add verification module for Kani configuration** [`39646c0`](https://github.com/acgetchell/causal-triangulations/commit/39646c0)

  This commit adds a verification module for the Kani configuration. The module is only included when the Tarpaulin feature is not enabled.

- **Add Codecov badge to README.md** [`d7adf30`](https://github.com/acgetchell/causal-triangulations/commit/d7adf30)

  - Add Codecov badge to the README.md file.
  - Update the link to the Codecov page for cdt-rs repository.

- **Add GitHub workflows for code coverage and Kani Rust Verifier** [`eb07352`](https://github.com/acgetchell/causal-triangulations/commit/eb07352)

  - Added a new file `.github/workflows/codecov.yml` to set up a workflow for code coverage using `actions-rs/tarpaulin` and `codecov/codecov-action`.
  - Modified the existing file `.github/workflows/kani.yml` to update the version of `model-checking/kani-github-action` to v0.36 and changed the runs-on value
  to `ubuntu-20.04`.

- **Refactor code and add proof for triangle center in circumcircle** [`b12731d`](https://github.com/acgetchell/causal-triangulations/commit/b12731d)

  - Removed unused import of `float_ord::sort`
  - Added a proof function `center_of_triangle_is_in_circumcircle` to verify that the center of a triangle lies within its circumcircle. The function generates
  random factors for the x and y coordinates of the triangle vertices, creates a triangle using those factors, calculates the center, and asserts that it lies
  within the circumcircle.

  Note: Commented out previous proof function `success_example`.

- **Add test kani formal verification** [`84edb8c`](https://github.com/acgetchell/causal-triangulations/commit/84edb8c)

  Add float-ord dependency and implement center method for Triangle struct

  The commit adds the "float-ord" dependency to the Cargo.toml file. It also implements a new method called "center" for the Triangle struct in src/lib.rs. The
  center method calculates the center point of a triangle using the x and y coordinates of its vertices.

  Additionally, there are some changes in other files such as cspell.json, src/main.rs, and tests/cli.rs that are unrelated to this commit.

- **Separate libs from cli and add tests** [`dd049b3`](https://github.com/acgetchell/causal-triangulations/commit/dd049b3)

- **Update codeql-action version and add CI badge to README** [`64e4f1b`](https://github.com/acgetchell/causal-triangulations/commit/64e4f1b)

  - Update the `codeql-action` version from `v1` to `v2` in `.github/workflows/rust-clippy.yml`
  - Add a CI badge to the README file

- **Create rust-clippy.yml** [`7073fc0`](https://github.com/acgetchell/causal-triangulations/commit/7073fc0)

- **feat: Add CODEOWNERS file and security audit workflow** [`ead82d2`](https://github.com/acgetchell/causal-triangulations/commit/ead82d2)

  - Added a new CODEOWNERS file to specify default owners for the repository.
  - Created a new security audit workflow that runs on push events for Cargo.toml and Cargo.lock files.
  - Updated the CI workflow to include macOS and Windows platforms in addition to Ubuntu.
  - Added a Kani CI workflow that runs on pull requests and pushes.
  - Updated cspell.json with additional words, including "acgetchell".

- **Create ci.yml** [`238b474`](https://github.com/acgetchell/causal-triangulations/commit/238b474)

- **Create README.md** [`9797804`](https://github.com/acgetchell/causal-triangulations/commit/9797804)

### Changed

- **Bump actions-rust-lang/setup-rust-toolchain from 1.15.2 to 1.15.4** [`902a210`](https://github.com/acgetchell/causal-triangulations/commit/902a210)

  Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.15.2 to 1.15.4.
  - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases)
  - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md)
  - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/1780873c7b576612439a134613cc4cc74ce5538c...150fca883cd4034361b621bd4e6a9d34e5143606)

  ---
  updated-dependencies:
  - dependency-name: actions-rust-lang/setup-rust-toolchain
  dependency-version: 1.15.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  ...

- **Bump astral-sh/setup-uv from 7.3.0 to 7.6.0** [`c99861a`](https://github.com/acgetchell/causal-triangulations/commit/c99861a)

  Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 7.3.0 to 7.6.0.
  - [Release notes](https://github.com/astral-sh/setup-uv/releases)
  - [Commits](https://github.com/astral-sh/setup-uv/compare/eac588ad8def6316056a12d4907a9d4d84ff7a3b...37802adc94f370d6bfd71619e3f0bf239e1f3b78)

  ---
  updated-dependencies:
  - dependency-name: astral-sh/setup-uv
  dependency-version: 7.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  ...

- **Bump taiki-e/install-action from 2.68.6 to 2.68.35** [`95bf128`](https://github.com/acgetchell/causal-triangulations/commit/95bf128)

  Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.68.6 to 2.68.35.
  - [Release notes](https://github.com/taiki-e/install-action/releases)
  - [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
  - [Commits](https://github.com/taiki-e/install-action/compare/470679bc3a1580072dac4e67535d1aa3a3dcdf51...94a7388bec5d4c8dd93e3ebf09e0ff448f3f6f4d)

  ---
  updated-dependencies:
  - dependency-name: taiki-e/install-action
  dependency-version: 2.68.35
  dependency-type: direct:production
  update-type: version-update:semver-patch
  ...

- **Bump actions/upload-artifact from 6.0.0 to 7.0.0** [`bd961ba`](https://github.com/acgetchell/causal-triangulations/commit/bd961ba)

  Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6.0.0 to 7.0.0.
  - [Release notes](https://github.com/actions/upload-artifact/releases)
  - [Commits](https://github.com/actions/upload-artifact/compare/b7c566a772e6b6bfb58ed0dc250532a479d7789f...bbbca2ddaa5d8feaa63e36b76fdaad77386f024f)

  ---
  updated-dependencies:
  - dependency-name: actions/upload-artifact
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  ...

- **Merge pull request #74 from acgetchell/refactor/rename-and-upgrade-delaunay-0.7.2**
  [`026bf7e`](https://github.com/acgetchell/causal-triangulations/commit/026bf7e)

  refactor: rename crate to causal-triangulations and upgrade to delaun…

- **Changed: Update changelog for crate rename and delaunay v0.7.2 upgrade** [`95998e0`](https://github.com/acgetchell/causal-triangulations/commit/95998e0)

  Synchronize CHANGELOG.md with recent milestones, including the crate
  rename to causal-triangulations, the upgrade to delaunay v0.7.2, and
  the removal of Kani verification. This internal update also modernizes
  Python test code to use parenthesized context managers.

- **Changed: Harden and reorganize Python test suite** [`2bbe623`](https://github.com/acgetchell/causal-triangulations/commit/2bbe623)

  Improve test isolation by mocking filesystem lookups and adding
  environment guards for git-dependent utilities. Reorganize benchmark
  model tests into appropriate classes and update mock call inspection
  logic in changelog tests for better maintainability.

- **refactor: rename crate to causal-triangulations and upgrade to delaunay v0.7.2**
  [`cbc5935`](https://github.com/acgetchell/causal-triangulations/commit/cbc5935)

  Rename:
  - Rename crate from causal-dynamical-triangulations to causal-triangulations
  - Update all references across source, config, docs, scripts, and CI
  - Update git remote to new repository URL

  Upgrade to delaunay v0.7.2:
  - Use DelaunayTriangulationBuilder for triangulation construction
  - Switch from FastKernel to RobustKernel (v0.7.2 builder default)
  - Improve validation with is_coherently_oriented() and deep is_valid()
  - Expose topology_kind() for runtime topology metadata
  - Change vertex data from i32 to () (CDT metadata tracked separately)
  - Bump MSRV from 1.93.0 to 1.94.0 (required by delaunay v0.7.2)

  Code quality:
  - Simplify redundant trait bounds (DataType already includes Copy+Clone+Debug+Eq+Ord+Hash+Serialize+Deserialize)
  - Hoist function-scoped imports to module level
  - Remove mypy (replaced by ty for Python type checking)
  - Remove cspell.json (replaced by typos)

  Align with delaunay repo:
  - Justfile: split setup into setup + setup-tools, align ci/test/fix recipes, add yaml-fix
  - Sync changelog_utils.py, enhance_commits.py, subprocess_utils.py, hardware_utils.py from delaunay
  - Add test_changelog_generate_workflow, test_release_notes_postprocessor, test_subprocess_utils

  Documentation:
  - Add docs/RELEASING.md release guide
  - Update MSRV references across all docs
  - Fix find_good_seeds example to accept χ=1 (boundary) and χ=2 (closed)
  - Update test counts in docs/testing.md

- **Changed: Improves benchmark checks in CI workflow** [`d86f9f0`](https://github.com/acgetchell/causal-triangulations/commit/d86f9f0)

  Updates the benchmark checks in the performance CI workflow to
  ensure both the `[[bench]]` configuration exists in `Cargo.toml`
  and that benchmark files are present in the `benches/` directory.
  This change provides more accurate warnings and prevents errors
  when benchmarks are not properly configured. Internal.

- **Bump taiki-e/install-action from 2.65.1 to 2.68.6** [`025e514`](https://github.com/acgetchell/causal-triangulations/commit/025e514)

  Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.65.1 to 2.68.6.
  - [Release notes](https://github.com/taiki-e/install-action/releases)
  - [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
  - [Commits](https://github.com/taiki-e/install-action/compare/b9c5db3aef04caffaf95a1d03931de10fb2a140f...470679bc3a1580072dac4e67535d1aa3a3dcdf51)

  ---
  updated-dependencies:
  - dependency-name: taiki-e/install-action
  dependency-version: 2.68.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
  ...

- **Bump astral-sh/setup-uv from 7.1.6 to 7.3.0** [`d8b0667`](https://github.com/acgetchell/causal-triangulations/commit/d8b0667)

  Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 7.1.6 to 7.3.0.
  - [Release notes](https://github.com/astral-sh/setup-uv/releases)
  - [Commits](https://github.com/astral-sh/setup-uv/compare/681c641aba71e4a1c380be3ab5e12ad51f415867...eac588ad8def6316056a12d4907a9d4d84ff7a3b)

  ---
  updated-dependencies:
  - dependency-name: astral-sh/setup-uv
  dependency-version: 7.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  ...

- **Bump actions/checkout from 5.0.1 to 6.0.2** [`50a3a48`](https://github.com/acgetchell/causal-triangulations/commit/50a3a48)

  Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.2.
  - [Release notes](https://github.com/actions/checkout/releases)
  - [Commits](https://github.com/actions/checkout/compare/v5.0.1...v6.0.2)

  ---
  updated-dependencies:
  - dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  ...

- **Bump actions/setup-python from 6.1.0 to 6.2.0** [`3fa4378`](https://github.com/acgetchell/causal-triangulations/commit/3fa4378)

  Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.1.0 to 6.2.0.
  - [Release notes](https://github.com/actions/setup-python/releases)
  - [Commits](https://github.com/actions/setup-python/compare/83679a892e2d95755f2dac6acb0bfd1e9ac5d548...a309ff8b426b58ec0e2a45f0f869d46889d02405)

  ---
  updated-dependencies:
  - dependency-name: actions/setup-python
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  ...

- **Merge pull request #34 from acgetchell/feat/convex-hulls** [`2ca86c7`](https://github.com/acgetchell/causal-triangulations/commit/2ca86c7)

  Added: Convex hull and boundary edge computation.

- **Changed: Improves performance baseline comparisons** [`dcf64ec`](https://github.com/acgetchell/causal-triangulations/commit/dcf64ec)

  Refactors the performance baseline comparison script to improve
  reliability and clarity.

  This commit includes changes to handle potential timeout errors
  during baseline fetching and makes the project root optional for
  more flexible usage. It also adjusts the sleep duration in the
  GitHub baseline fetcher to prevent exceeding deadlines.
  Additionally, it modifies the changelog script to better detect
  function declarations.

- **Changed: Improves CI and audit workflows** [`ab69abf`](https://github.com/acgetchell/causal-triangulations/commit/ab69abf)

  Updates the CI workflow to use a specific version of dprint and the
  audit workflow to use a specific version of cargo-audit, improving
  reproducibility. Modifies cargo audit to reuse cached advisory DB.
  Adds installation instructions for yamllint for macOS, pip, and uv.

  Updates benchmark comparison to allow configuration of the regression
  threshold. Adds CLI option for gh timeout.

  Updates docs to clarify the sampling method used by
  `select_random_move`.
  Updates `typos` spell-check script.

- **Changed: Improves CI/audit workflows and scripts** [`7f7b32c`](https://github.com/acgetchell/causal-triangulations/commit/7f7b32c)

  Updates CI and audit workflows for better reliability and tooling.

  Changes include:
  - Pinning actions to specific commit SHAs for reproducibility.
  - Updating `typos` version in CI.
  - Relaxing cargo audit failure to allow json output.
  - Adding `git-cliff` to the `setup` script
  - Moving static methods in changelog_utils
  - Fixing error message and raising RuntimeError

  These changes improve the reliability and maintainability of
  the CI and audit processes.

- **Changed: Refactors CI workflow for improved tooling and audit** [`995530d`](https://github.com/acgetchell/causal-triangulations/commit/995530d)

  - Updates CI configuration for enhanced tooling consistency.
  - Replaces cargo-audit action with direct cargo-audit execution for
  better control and reporting.
  - Removes cspell and adds typos-cli for unified spell checking.
  - Improves dependency auditing, Markdown/JSON formatting, and shell
  script validation.
  - Simplifies and consolidates installation of necessary tools.

- **Changed: Updates tooling and CI configurations** [`513847d`](https://github.com/acgetchell/causal-triangulations/commit/513847d)

  Updates tooling configurations for linters,
  formatters, and CI workflows, improving code
  quality and maintainability (internal).

- **Bump actions/checkout from 5.0.0 to 6.0.1** [`a58bb11`](https://github.com/acgetchell/causal-triangulations/commit/a58bb11)

  Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.1.
  - [Release notes](https://github.com/actions/checkout/releases)
  - [Commits](https://github.com/actions/checkout/compare/v5...v6.0.1)

  ---
  updated-dependencies:
  - dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  ...

- **Bump actions/cache from 4 to 5** [`08957fc`](https://github.com/acgetchell/causal-triangulations/commit/08957fc)

  Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
  - [Release notes](https://github.com/actions/cache/releases)
  - [Commits](https://github.com/actions/cache/compare/v4...v5)

  ---
  updated-dependencies:
  - dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  ...

- **Bump astral-sh/setup-uv from 7.1.1 to 7.1.6** [`fd22207`](https://github.com/acgetchell/causal-triangulations/commit/fd22207)

  Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 7.1.1 to 7.1.6.
  - [Release notes](https://github.com/astral-sh/setup-uv/releases)
  - [Commits](https://github.com/astral-sh/setup-uv/compare/2ddd2b9cb38ad8efd50337e8ab201519a34c9f24...681c641aba71e4a1c380be3ab5e12ad51f415867)

  ---
  updated-dependencies:
  - dependency-name: astral-sh/setup-uv
  dependency-version: 7.1.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  ...

- **Bump codecov/codecov-action from 5.5.1 to 5.5.2** [`2cbe0aa`](https://github.com/acgetchell/causal-triangulations/commit/2cbe0aa)

  Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.5.1 to 5.5.2.
  - [Release notes](https://github.com/codecov/codecov-action/releases)
  - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
  - [Commits](https://github.com/codecov/codecov-action/compare/5a1091511ad55cbe89839c7260b706298ca349f7...671740ac38dd9b0130fbe1cec585b89eea48d3de)

  ---
  updated-dependencies:
  - dependency-name: codecov/codecov-action
  dependency-version: 5.5.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  ...

- **Merge pull request #33 from acgetchell/refactor/update-delaunay** [`8f79838`](https://github.com/acgetchell/causal-triangulations/commit/8f79838)

  refactor: update use of delaunay crate

- **Changed: Updates CI workflow tool versions** [`2aa55b2`](https://github.com/acgetchell/causal-triangulations/commit/2aa55b2)

  Updates the versions of markdownlint and cspell in the CI workflow
  to the latest versions.

  Also, adds a step to print the shfmt version in the CI workflow
  for both Linux and macOS to verify the installation.

- **Changed: Improves CI workflow with version pinning and checksums** [`e5c391e`](https://github.com/acgetchell/causal-triangulations/commit/e5c391e)

  Updates the CI workflow to pin versions of `markdownlint-cli` and
  `cspell`.

  Adds checksum verification for `actionlint` and `shfmt` installations
  to enhance supply-chain security. This includes fetching checksum
  files and verifying the downloaded binaries against them.

  Refactors hardware utils to handle more exceptions.
  Addresses edge case where `baseline_mem_num` is 0 or negative.

- **Changed: Updates actionlint version and installation process** [`5341b14`](https://github.com/acgetchell/causal-triangulations/commit/5341b14)

  Updates actionlint to version 1.7.10 and changes the installation
  process to directly download prebuilt binaries from the GitHub
  releases page to avoid potential cargo-binstall fallback failures.

  Also adds exception handling for several possible exceptions when
  retrieving memory information from the operating system.

- **Changed: Pin shfmt version for CI consistency** [`01d37fe`](https://github.com/acgetchell/causal-triangulations/commit/01d37fe)

  Pins the `shfmt` version in CI workflows to ensure consistent
  formatting checks across different operating systems (Linux and
  macOS). This change introduces an environment variable
  `SHFMT_VERSION` to define the pinned version and updates the
  installation scripts for both Linux and macOS to use this variable.
  Also refactors `hardware_utils.py` to consistently capture output.

- **Changed: Refactors performance analysis and adds type checking** [`47a6f4d`](https://github.com/acgetchell/causal-triangulations/commit/47a6f4d)

  Refactors performance analysis scripts to validate baseline data
  and improve robustness.

  Adds `ty` for type checking Python scripts, enhancing code
  quality and maintainability. Integrates `ty` into the `justfile`
  and CI workflow.

  Updates hardware info gathering on windows to be more robust.

  These changes improve the reliability and maintainability of
  the project's performance analysis and tooling.

- **CI/Tools: install actionlint and harden scripts** [`aed2f48`](https://github.com/acgetchell/causal-triangulations/commit/aed2f48)

  - CI: install actionlint (v1.7.9) on Linux/macOS runners
  - changelog-utils: centralize tag-annotation size limit and add repo URL fallback for CHANGELOG links
  - changelog-utils: allow overriding breaking-change API tokens via env
  - hardware-utils: refactor hardware comparison to satisfy Ruff complexity rules
  - performance-analysis: use explicit UTF-8 for file I/O
  - mypy: relax overrides for test modules; update affected tests/docs

- **Refactor: Improve changelog tooling and cache invalidation** [`6563a84`](https://github.com/acgetchell/causal-triangulations/commit/6563a84)

  - Refactor scripts/changelog_utils.py release-notes parsing/normalization and helpers
  - Add 125KB tag-message boundary coverage for changelog truncation
  - Add Delaunay edge-cache invalidation helper and clarify mutation/caching expectations
  - Tighten tooling/config (action-lint prep, remove ruff F841 ignore) and small script/test cleanups

- **Refactor: Improve triangulation backend and tooling** [`ee00f97`](https://github.com/acgetchell/causal-triangulations/commit/ee00f97)

  Refactors the triangulation backend for better
  performance and maintainability, including adding a toolchain
  file for consistent Rust versions.

  Changes include:
  *   Adding a taplo config to mirror Cargo TOML philosophy
  *   Adding mypy to the python tooling
  *   Adding more complete CI with fix and check commands

- **Merge branch 'main' into refactor/update-delaunay** [`860559f`](https://github.com/acgetchell/causal-triangulations/commit/860559f)

- **Bump the dependencies group across 1 directory with 7 updates** [`dc79541`](https://github.com/acgetchell/causal-triangulations/commit/dc79541)

  Bumps the dependencies group with 7 updates in the / directory:

  | Package | From | To |
  | --- | --- | --- |
  | [clap](https://github.com/clap-rs/clap) | `4.5.50` | `4.5.53` |
  | [delaunay](https://github.com/acgetchell/delaunay) | `0.5.1` | `0.5.3` |
  | [log](https://github.com/rust-lang/log) | `0.4.28` | `0.4.29` |
  | [uuid](https://github.com/uuid-rs/uuid) | `1.18.1` | `1.19.0` |
  | [assert_cmd](https://github.com/assert-rs/assert_cmd) | `2.0.17` | `2.1.1` |
  | [criterion](https://github.com/criterion-rs/criterion.rs) | `0.7.0` | `0.8.1` |
  | [proptest](https://github.com/proptest-rs/proptest) | `1.8.0` | `1.9.0` |

  Updates `clap` from 4.5.50 to 4.5.53
  - [Release notes](https://github.com/clap-rs/clap/releases)
  - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
  - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.50...clap_complete-v4.5.53)

  Updates `delaunay` from 0.5.1 to 0.5.3
  - [Release notes](https://github.com/acgetchell/delaunay/releases)
  - [Changelog](https://github.com/acgetchell/delaunay/blob/main/CHANGELOG.md)
  - [Commits](https://github.com/acgetchell/delaunay/compare/v0.5.1...v0.5.3)

  Updates `log` from 0.4.28 to 0.4.29
  - [Release notes](https://github.com/rust-lang/log/releases)
  - [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md)
  - [Commits](https://github.com/rust-lang/log/compare/0.4.28...0.4.29)

  Updates `uuid` from 1.18.1 to 1.19.0
  - [Release notes](https://github.com/uuid-rs/uuid/releases)
  - [Commits](https://github.com/uuid-rs/uuid/compare/v1.18.1...v1.19.0)

  Updates `assert_cmd` from 2.0.17 to 2.1.1
  - [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md)
  - [Commits](https://github.com/assert-rs/assert_cmd/compare/v2.0.17...v2.1.1)

  Updates `criterion` from 0.7.0 to 0.8.1
  - [Release notes](https://github.com/criterion-rs/criterion.rs/releases)
  - [Changelog](https://github.com/criterion-rs/criterion.rs/blob/master/CHANGELOG.md)
  - [Commits](https://github.com/criterion-rs/criterion.rs/compare/criterion-plot-v0.7.0...criterion-v0.8.1)

  Updates `proptest` from 1.8.0 to 1.9.0
  - [Release notes](https://github.com/proptest-rs/proptest/releases)
  - [Changelog](https://github.com/proptest-rs/proptest/blob/main/CHANGELOG.md)
  - [Commits](https://github.com/proptest-rs/proptest/compare/v1.8.0...v1.9.0)

  ---
  updated-dependencies:
  - dependency-name: clap
  dependency-version: 4.5.53
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
  - dependency-name: delaunay
  dependency-version: 0.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
  - dependency-name: log
  dependency-version: 0.4.29
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
  - dependency-name: uuid
  dependency-version: 1.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
  - dependency-name: assert_cmd
  dependency-version: 2.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
  - dependency-name: criterion
  dependency-version: 0.8.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
  - dependency-name: proptest
  dependency-version: 1.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
  ...

- **Bump actions/upload-artifact from 4.6.2 to 6.0.0** [`5f5de78`](https://github.com/acgetchell/causal-triangulations/commit/5f5de78)

  Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.2 to 6.0.0.
  - [Release notes](https://github.com/actions/upload-artifact/releases)
  - [Commits](https://github.com/actions/upload-artifact/compare/ea165f8d65b6e75b540449e92b4886f43607fa02...b7c566a772e6b6bfb58ed0dc250532a479d7789f)

  ---
  updated-dependencies:
  - dependency-name: actions/upload-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  ...

- **Bump actions/setup-python from 6.0.0 to 6.1.0** [`31ba11c`](https://github.com/acgetchell/causal-triangulations/commit/31ba11c)

  Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.0.0 to 6.1.0.
  - [Release notes](https://github.com/actions/setup-python/releases)
  - [Commits](https://github.com/actions/setup-python/compare/e797f83bcb11b83ae66e0230d6156d7c80228e7c...83679a892e2d95755f2dac6acb0bfd1e9ac5d548)

  ---
  updated-dependencies:
  - dependency-name: actions/setup-python
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  ...

- **Bump clap from 4.5.49 to 4.5.50 in the dependencies group** [`b6e1d89`](https://github.com/acgetchell/causal-triangulations/commit/b6e1d89)

  Bumps the dependencies group with 1 update: [clap](https://github.com/clap-rs/clap).

  Updates `clap` from 4.5.49 to 4.5.50
  - [Release notes](https://github.com/clap-rs/clap/releases)
  - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
  - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.49...clap_complete-v4.5.50)

  ---
  updated-dependencies:
  - dependency-name: clap
  dependency-version: 4.5.50
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
  ...

- **Bump astral-sh/setup-uv from 7.1.0 to 7.1.1** [`afceea3`](https://github.com/acgetchell/causal-triangulations/commit/afceea3)

  Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 7.1.0 to 7.1.1.
  - [Release notes](https://github.com/astral-sh/setup-uv/releases)
  - [Commits](https://github.com/astral-sh/setup-uv/compare/3259c6206f993105e3a61b142c2d97bf4b9ef83d...2ddd2b9cb38ad8efd50337e8ab201519a34c9f24)

  ---
  updated-dependencies:
  - dependency-name: astral-sh/setup-uv
  dependency-version: 7.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  ...

- **refactor: update use of delaunay crate** [`c4eef3c`](https://github.com/acgetchell/causal-triangulations/commit/c4eef3c)

  #### Added

  - Taplo-based TOML formatting/linting (`just toml-fmt`, `just toml-fmt-check`, `just toml-lint`) and wired into `lint-config`.
  - Synced `scripts/` tooling and a full `scripts/tests/` suite (benchmarking, changelog utilities, hardware utils, etc.).

  #### Changed

  - GitHub Actions `.github/workflows/ci.yml` now installs required tools and runs `just ci` on Linux/macOS (Windows keeps cargo build/test).
  - `just ci` now includes JSON validation and taplo TOML checks to keep CI coverage up to date.
  - Updated docs/config (README/CONTRIBUTING/cspell/pyproject/toolchain) to reflect the current workflows and tooling.

  #### Fixed

  - Resolved delaunay backend and util.rs mismatches and updated to current version of delaunay crate
  - Resolved Ruff/test issues in synced Python tooling; improved shell/yaml CI robustness.

- **Merge remote-tracking branch 'origin/main'** [`c36740a`](https://github.com/acgetchell/causal-triangulations/commit/c36740a)

- **refactor: update tooling and backend compatibility** [`5aa1ee8`](https://github.com/acgetchell/causal-triangulations/commit/5aa1ee8)

  - Refactor delaunay backend for v0.5.1 API compatibility
  - Update vertex/cell access to use key-based lookups
  - Migrate from direct field access to method calls
  - Handle Phase 3A VertexKey and CellKey changes

  - Rename binary from cdt-rs to cdt for cleaner CLI
  - Update Cargo.toml, tests, docs, and examples
  - Simplify all command invocations

  - Improve justfile with robust patterns from delaunay
  - Add file existence checks for all lint operations
  - Reorganize into logical sections with comments
  - Add lint-code, lint-docs, lint-config groupings
  - Enhance spell-check to handle renamed files
  - Add run-simulation recipe for example script
  - Update help-workflows with better organization

  - Update development scripts
  - Copy improved enhance_commits.py from delaunay
  - Better commit categorization with explicit prefixes

  - Add sweep_results/ to gitignore

- **Bump actions-rust-lang/setup-rust-toolchain from 1.15.0 to 1.15.2** [`76b881a`](https://github.com/acgetchell/causal-triangulations/commit/76b881a)

  Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.15.0 to 1.15.2.
  - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases)
  - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md)
  - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.15...1780873c7b576612439a134613cc4cc74ce5538c)

  ---
  updated-dependencies:
  - dependency-name: actions-rust-lang/setup-rust-toolchain
  dependency-version: 1.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  ...

- **Bump astral-sh/setup-uv from 6.8.0 to 7.1.0** [`67bb4dc`](https://github.com/acgetchell/causal-triangulations/commit/67bb4dc)

  Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.8.0 to 7.1.0.
  - [Release notes](https://github.com/astral-sh/setup-uv/releases)
  - [Commits](https://github.com/astral-sh/setup-uv/compare/v6.8...3259c6206f993105e3a61b142c2d97bf4b9ef83d)

  ---
  updated-dependencies:
  - dependency-name: astral-sh/setup-uv
  dependency-version: 7.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  ...

- **Bump actions/github-script from 7.0.1 to 8.0.0** [`fbbd871`](https://github.com/acgetchell/causal-triangulations/commit/fbbd871)

  Bumps [actions/github-script](https://github.com/actions/github-script) from 7.0.1 to 8.0.0.
  - [Release notes](https://github.com/actions/github-script/releases)
  - [Commits](https://github.com/actions/github-script/compare/60a0d83039c74a4aee543508d2ffcb1c3799cdea...ed597411d8f924073f98dfc5c65a23a2325f34cd)

  ---
  updated-dependencies:
  - dependency-name: actions/github-script
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  ...

- **Merge pull request #11 from acgetchell/feature/testing-and-performance-infrastructure**
  [`7bf248c`](https://github.com/acgetchell/causal-triangulations/commit/7bf248c)

  Feature/testing and performance infrastructure

- **Changed: Improves changelog generation and performance analysis** [`8e04d89`](https://github.com/acgetchell/causal-triangulations/commit/8e04d89)

  Updates changelog generation to correctly identify PRs and adjusts
  the automatic changelog configuration to ignore test commits. Improves
  performance analysis reporting, including handling edge cases such as
  infinite ratios and refining trend analysis, and adds project root argument.
  These changes enhance the robustness and clarity of both changelog
  creation and performance assessment processes.

- **Changed: Improves clippy-sarif tooling installation and cache** [`4c455c9`](https://github.com/acgetchell/causal-triangulations/commit/4c455c9)

  Refactors the clippy-sarif tooling installation process in the
  GitHub workflow to use a dedicated directory under $HOME and
  updates the PATH. This ensures tools are correctly cached and
  accessible. Also updates the spell-check recipe.

  This change also updates dependencies in `Cargo.lock` and uses `dirs`
  crate instead of env vars for resolving paths, which is more reliable.

- **Changed: Enhances testing and performance infrastructure** [`fc513ac`](https://github.com/acgetchell/causal-triangulations/commit/fc513ac)

  Improves performance analysis workflow with more robust
  benchmarking and reporting. Includes workflow updates
  with better compilation validation and error handling,
  adds coverage reporting, and includes new CI checks.
  Includes updates to `.gitignore` and `justfile`
  to support new tooling. (Internal change)

- **Merge branch 'main' into refactor/isolation-of-delaunay-crate** [`c10aeaf`](https://github.com/acgetchell/causal-triangulations/commit/c10aeaf)

- **Bump astral-sh/setup-uv from 6.7.0 to 6.8.0** [`db2daee`](https://github.com/acgetchell/causal-triangulations/commit/db2daee)

  Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.7.0 to 6.8.0.
  - [Release notes](https://github.com/astral-sh/setup-uv/releases)
  - [Commits](https://github.com/astral-sh/setup-uv/compare/b75a909f75acd358c2196fb9a5f1299a9a8868a4...d0cc045d04ccac9d8b7881df0226f9e82c39688e)

  ---
  updated-dependencies:
  - dependency-name: astral-sh/setup-uv
  dependency-version: 6.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  ...

- **Merge pull request #7 from acgetchell/refactor/integrate-with-delaunay** [`95f2b70`](https://github.com/acgetchell/causal-triangulations/commit/95f2b70)

  Changed: Refactors triangulation and updates dependencies

- **Changed: Refactors triangulation creation and simulation runs** [`ffa6e35`](https://github.com/acgetchell/causal-triangulations/commit/ffa6e35)

  Refactors the triangulation creation process to use
  `from_random_points` for more clarity and consistency.

  Updates simulation runs to use the `run` method, streamlining
  the simulation execution and reducing redundancy.
  These changes enhance the overall structure and maintainability
  of the CDT simulation framework.

- **🔧 Build System: Integrates criterion for benchmarking** [`9891b8b`](https://github.com/acgetchell/causal-triangulations/commit/9891b8b)

  Adds criterion crate as a dependency and creates initial benchmark
  suite for measuring performance of core CDT operations.

  Includes benchmarks for triangulation creation, edge counting,
  geometry queries, action calculations, ergodic moves, metropolis
  simulation, simulation analysis, cache operations, and validation.
  Adds README to describe the benchmarking suite.

- **Changed: Improves test coverage and adds Kani proofs** [`16aae91`](https://github.com/acgetchell/causal-triangulations/commit/16aae91)

  Enhances the testing framework by adding a new testing guide,
  increasing test coverage, and introducing Kani proofs for action
  calculation properties. This ensures more robust and reliable
  code, especially in critical areas like the Regge action
  calculation. Also updates `.gitignore` and cspell to accommodate
  new test-related files and terms. (Internal change)

- **Changed: Refactors triangulation backend with trait-based geometry** [`c05f637`](https://github.com/acgetchell/causal-triangulations/commit/c05f637)

  Migrates triangulation to a trait-based geometry backend, providing
  better abstraction and testability by decoupling CDT algorithms
  from specific geometry implementations.

  This change includes:
  - Introduction of the `geometry` module with traits and backend implementations.
  - Restructuring of the `cdt` module to use the new trait-based backend.
  - Addition of Delaunay and Mock backend implementations.
  - Deprecation of the old `triangulations` module.

  No functional changes. Migration from legacy `CausalTriangulation`
  to new `CdtTriangulation` is recommended.

- **Changed: Refactors triangulation and simulation architecture** [`4d56e07`](https://github.com/acgetchell/causal-triangulations/commit/4d56e07)

  This commit significantly refactors the crate by separating
  geometric operations from physics constraints for improved
  layering and reusability. It introduces a smart wrapper for
  mutable TDS access with precise cache invalidation and enhances
  error context for triangulation generation. It also addresses
  an incomplete ergodic moves implementation, paving the way
  for a well-architected simulation. The changes include a new
  `moves.md` document detailing the new approach as well as
  integration tests.

- **Changed: Refactors Kani workflow and updates dependencies** [`aab33e2`](https://github.com/acgetchell/causal-triangulations/commit/aab33e2)

  Refactors the Kani verification workflow to use actions-rust-lang/setup-rust-toolchain.

  Updates Kani action to v1.1.

  Disables shell script linting in CI.
  This is an internal change to improve workflow maintainability.

  Adds a TODO document to track improvements and technical debt.

- **Changed: Refactors triangulation and updates dependencies** [`0601450`](https://github.com/acgetchell/causal-triangulations/commit/0601450)

  Refactors the triangulation module to use the `delaunay` crate for
  Delaunay triangulation, providing a more robust and efficient
  implementation.

  Also, updates dependencies and fixes markdownlint settings.
  Adds words to the spell check dictionary.
  Removes the old triangulation files.

- **Bump actions/checkout from 4 to 5** [`ee667c9`](https://github.com/acgetchell/causal-triangulations/commit/ee667c9)

  Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
  - [Release notes](https://github.com/actions/checkout/releases)
  - [Commits](https://github.com/actions/checkout/compare/v4...v5)

  ---
  updated-dependencies:
  - dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  ...

- **Bump actions/cache from 4.2.4 to 4.3.0** [`7d3a7f2`](https://github.com/acgetchell/causal-triangulations/commit/7d3a7f2)

  Bumps [actions/cache](https://github.com/actions/cache) from 4.2.4 to 4.3.0.
  - [Release notes](https://github.com/actions/cache/releases)
  - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
  - [Commits](https://github.com/actions/cache/compare/0400d5f644dc74513175e3cd8d07132dd4860809...0057852bfaa89a56745cba8c7296529d2fc39830)

  ---
  updated-dependencies:
  - dependency-name: actions/cache
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  ...

- **Changed: Refactors triangulation and setup process (internal)** [`642e824`](https://github.com/acgetchell/causal-triangulations/commit/642e824)

  Refactors the project structure to use the `delaunay` crate for 2D
  triangulation, replacing `spade`. This change includes updates to
  Cargo.toml, removal of the old triangulation module, and
  implementation of a basic triangle generation function. Also adds a
  `.justfile` for development workflows and a `rust-toolchain.toml` for
  consistent Rust versions.  This is an internal change to improve
  maintainability and prepare for more advanced triangulation
  features.

- **chore: update dependencies** [`5ed0203`](https://github.com/acgetchell/causal-triangulations/commit/5ed0203)

- **ci: Ignore unused functions** [`6c43277`](https://github.com/acgetchell/causal-triangulations/commit/6c43277)

  These should get replaced by <https://github.com/acgetchell/d-delaunay>

- **ci: Ignore cargo kani for Codecov** [`4732a05`](https://github.com/acgetchell/causal-triangulations/commit/4732a05)

- **Update dependencies** [`af94c11`](https://github.com/acgetchell/causal-triangulations/commit/af94c11)

- **ci: Update dependencies** [`b191596`](https://github.com/acgetchell/causal-triangulations/commit/b191596)

- **doc: Update status badges** [`000cba5`](https://github.com/acgetchell/causal-triangulations/commit/000cba5)

- **ci: Update GitHub actions** [`6b38039`](https://github.com/acgetchell/causal-triangulations/commit/6b38039)

- **build: update crates** [`cbdb784`](https://github.com/acgetchell/causal-triangulations/commit/cbdb784)

- **Update package versions in Cargo.lock:** [`22745d3`](https://github.com/acgetchell/causal-triangulations/commit/22745d3)

  - Updated versions for multiple packages
  - Changed checksums for updated packages

- **Update dependencies in Cargo.toml and Cargo.lock** [`a19ff71`](https://github.com/acgetchell/causal-triangulations/commit/a19ff71)

  - Update version of "anstream" to 0.6.11
  - Update version of "assert_cmd" to 2.0.13
  - Update version of "clap" to 4.5.0
  - Update version of "clap_builder" to 4.5.0
  - Update version of "clap_derive" to 4.5.0
  - Update version of "clap_lex" to 0.7.0
  - Update version of "predicates" to 3.1.0
  - Update version of "spade" to 2.6.0
  - Update version of "strsim" to 0.11.0

- **First pass at DCEL** [`8d20c3b`](https://github.com/acgetchell/causal-triangulations/commit/8d20c3b)

  First pass at 2D doubly connected edge list.

  Update crates.

  Start documenting.

- **Update some dependencies** [`9001a8d`](https://github.com/acgetchell/causal-triangulations/commit/9001a8d)

- **Refactor code to use external crates for command line arguments and 2D Delaunay triangulation**
  [`dbd144c`](https://github.com/acgetchell/causal-triangulations/commit/dbd144c)

  - Added `clap` crate for command line argument parsing
  - Added `spade` crate for 2D Delaunay triangulation
  - Updated imports and dependencies accordingly
  - Modified `generate_random_vertex()` function to accept a scale parameter

- **Merge remote-tracking branch 'origin/main' into main** [`3be06b4`](https://github.com/acgetchell/causal-triangulations/commit/3be06b4)

- **Update cargo** [`28ef382`](https://github.com/acgetchell/causal-triangulations/commit/28ef382)

- **Update Kani CI workflow and dependencies, print vertex positions and triangle positions.**
  [`fa01d09`](https://github.com/acgetchell/causal-triangulations/commit/fa01d09)

  - Updated the Kani CI workflow to trigger on workflow_dispatch instead of push events.
  - Updated the dependency "aho-corasick" from version 1.1.0 to 1.1.1.
  - Updated the dependency "smallvec" from version 1.11.0 to 1.11.1.
  - Added a new word "Timevalue" to the cspell.json dictionary.
  - Modified the code in src/lib.rs to print vertex positions instead of just vertices and added printing of triangle positions.

  These changes improve the CI workflow, update dependencies, add a new word to spell check, and enhance debugging output for vertex and triangle positions.

- **Update README** [`bae27db`](https://github.com/acgetchell/causal-triangulations/commit/bae27db)

- **Kani and spade don't get along** [`3d084ea`](https://github.com/acgetchell/causal-triangulations/commit/3d084ea)

  Update dependencies in Cargo.toml and Cargo.lock

  The versions of "aho-corasick", "clap", "clap_builder", "itertools", "predicates", and "syn" have been updated in the Cargo.toml and Cargo.lock files.

- **Trying out using Spade** [`8542cf4`](https://github.com/acgetchell/causal-triangulations/commit/8542cf4)

  Seems nice and featureful, but now having strange issues with Kani. And of course output is a whole 'nother thing.

  Commented out original source code in case I need to back out.

  CI Kani is going to fail.

- **Refactor Delaunay triangulation code** [`0564e2d`](https://github.com/acgetchell/causal-triangulations/commit/0564e2d)

  - Move `Point` and `Triangle` structs to a separate module
  - Make `Point` fields public
  - Make `Triangle::center()` method public
  - Make `bowyer_watson()` function public in the new module

  This commit refactors the code by moving the `Point` and `Triangle` structs to a separate module called "delaunay". It also makes the fields of the `Point`
  struct public and exposes the `Triangle::center()` method publicly. Additionally, it makes the `bowyer_watson()` function public in the new module. These
  changes improve code organization and allow for easier access to relevant functionality.

- **Update Codecov workflow to upload coverage reports and archive code coverage results**
  [`0f7c9bf`](https://github.com/acgetchell/causal-triangulations/commit/0f7c9bf)

  - Rename step to "Upload coverage reports to Codecov"
  - Update environment variable for CODECOV_TOKEN
  - Remove verbose option from codecov-action

- **Refactor GitHub workflow files for improved code coverage and caching** [`6a23ed8`](https://github.com/acgetchell/causal-triangulations/commit/6a23ed8)

  - Renamed the "build" workflow to "Codecov"
  - Added a step to use the "Swatinem/rust-cache" action in the "Codecov" workflow
  - Added a step to use the "Swatinem/rust-cache" action in the "Kani Rust Verifier" workflow
  - Added a step to use the "Swatinem/rust-cache" action in the "Install Rust toolchain" workflow

- **Refactor codecov.yml and lib.rs** [`b5464e3`](https://github.com/acgetchell/causal-triangulations/commit/b5464e3)

  - Remove version specification in codecov.yml
  - Comment out unused code in verification module

- **Refactor package and test names to use kebab-case** [`4447215`](https://github.com/acgetchell/causal-triangulations/commit/4447215)

  - Refactored the package name from "cdt_rs" to "cdt-rs" in Cargo.lock and Cargo.toml files.
  - Updated the test case in cli.rs file to use the new package name "cdt-rs".

- **Update README.md** [`296b984`](https://github.com/acgetchell/causal-triangulations/commit/296b984)

- **Refactor Triangle struct and variable names** [`9ae71ce`](https://github.com/acgetchell/causal-triangulations/commit/9ae71ce)

  - Refactored the Triangle struct in main.rs
  - Renamed the center variable to _center for clarity

- **First commit** [`9931dd3`](https://github.com/acgetchell/causal-triangulations/commit/9931dd3)

### Removed

- **refactor: remove Kani and update dev documentation** [`a48c38a`](https://github.com/acgetchell/causal-triangulations/commit/a48c38a)

  Remove Kani formal verification
  - Remove all `#[cfg(kani)]` proof modules from action.rs,
  ergodic_moves.rs, and config.rs
  - Delete `.github/workflows/kani.yml` CI workflow
  - Remove `kani` and `kani-fast` just recipes; drop from
  `commit-check` and `setup`
  - Remove `cfg(kani)` from Cargo.toml check-cfg
  - Clean Kani references from README, CONTRIBUTING, AGENTS,
  docs/RELEASING, and docs/dev/testing

  Kani's bundled nightly (rustc 1.93.0) is incompatible with the
  MSRV (1.94.0), and the proofs only covered pure arithmetic that
  proptest already handles. With `#![forbid(unsafe_code)]`, model
  checking adds maintenance cost without proportional benefit.

  Add developer documentation
  - Add docs/dev/commands.md, docs/dev/rust.md, docs/dev/testing.md
  - Expand AGENTS.md with detailed agent guidelines

  Improve scripts and tests
  - changelog_utils.py: raise ChangelogError with descriptive
  messages instead of calling sys.exit
  - hardware_utils.py: update TYPE_CHECKING imports
  - Add type hints to Python test functions
  - Adjust cross-platform skip logic in subprocess tests

  Fix geometry and test parameters
  - Use dt.validate() instead of dt.is_valid() in delaunay backend
  - Reduce proptest ranges in triangulation.rs to avoid Tarpaulin
  timeouts (vertices 3..30, timeslices 0..6)

- **Merge pull request #53 from acgetchell/chore/remove-legacy-tooling** [`4073588`](https://github.com/acgetchell/causal-triangulations/commit/4073588)

  chore: remove auto-changelog artifacts and restrict kani-full to manual

- **Removed: Legacy Kani workflow file** [`6ab5176`](https://github.com/acgetchell/causal-triangulations/commit/6ab5176)

  Removes the old Kani workflow file as it is no longer needed.

  Changed: Improves benchmark detection and execution logic

  Refactors the performance workflow to enhance benchmark detection
  and execution. It now checks for benchmark configurations before
  running, preventing errors when no benchmarks are present. Also,
  it simplifies conditional checks and improves the output messages.

  Changed: (Internal) Refactors performance workflow checks

- **chore: remove auto-changelog artifacts and restrict kani-full to manual** [`6dc7269`](https://github.com/acgetchell/causal-triangulations/commit/6dc7269)

  - .auto-changelog: delete legacy auto-changelog config (referenced the
  now-deleted docs/templates/changelog.hbs Handlebars template)
  - docs/templates/changelog.hbs: delete Handlebars template for
  auto-changelog; git-cliff with cliff.toml is the active tool
  - cliff.toml: remove stale comment referencing changelog.hbs
  - kani.yml: restrict kani-full job to workflow_dispatch only (was
  running on every push to main; move to manual trigger until all
  harnesses pass reliably)
  - CHANGELOG.md: regenerated via just changelog-update

- **chore: remove Node.js/markdownlint infrastructure and fix stale docs** [`d9d74d9`](https://github.com/acgetchell/causal-triangulations/commit/d9d74d9)

  Drop the `setup-node` + `npm install -g markdownlint-cli` steps from
  CI and all associated scaffolding; `dprint` has been the active
  markdown formatter for some time.

  - ci.yml: remove `setup-node` action, `npm install -g markdownlint-cli`
  step, and `MARKDOWNLINT_VERSION` env var
  - .markdownlint.json: delete orphaned config file
  - justfile: remove `_ensure-npx` helper (no recipe referenced it)
  - README.md: replace `just dev` with `just fix`/`just check`; remove
  Node.js/npx from tools checklist; fix MSRV 1.92.0 → 1.93.0
  - CONTRIBUTING.md: replace all `just dev` refs with `just fix`/`just
  check`/`just test`; fix MSRV 1.92.0 → 1.93.0 (4 sites); fix Edition
  2021 → 2024; fix Kani toolchain note MSRV
  - docs/CLI_EXAMPLES.md: fix `--simulate` default (true, not false);
  fix triangulation-only example to pass `--simulate false`
  - docs/TODO.md: tick off integration tests and CI/CD improvements as
  done with current counts; update date to 2026-02-21
  - docs/testing.md: update test counts (155 unit, 8 integration, 10 CLI,
  408 Python); fix coverage reference (`just coverage` → HTML,
  `cargo tarpaulin --out Json` → JSON for `just coverage-report`)

- **Remove DCEL** [`45b2a17`](https://github.com/acgetchell/causal-triangulations/commit/45b2a17)

  We'll use our own Delaunay triangulation library instead. DCEL is only good for 2D Delaunay triangulations.

- **Refactor Codecov workflow and remove unnecessary code** [`2a6616a`](https://github.com/acgetchell/causal-triangulations/commit/2a6616a)

  - Refactored the name of the Codecov job in the `.github/workflows/codecov.yml` file to "Codecov via tarpaulin"
  - Removed commented out code that checked for dimensionality in `src/lib.rs`
  - Removed commented out code that defined a fixed set of points in `src/lib.rs`
  - Replaced `rand::prelude::*` with `rand::Rng` import in `src/utilities.rs`

  These changes improve readability and remove unused code.

### Fixed

- **chore: fix review findings across docs, scripts, and backend** [`6195b11`](https://github.com/acgetchell/causal-triangulations/commit/6195b11)

  - Update CI Expectations in docs/dev/testing.md to match actual
  just ci recipe (check, bench-compile, test-all, examples)
  - Fix orphaned docstring fragment in changelog_utils.py main()
  - Add prettier/npx to setup-tools verification so "Tooling setup
  complete" guarantees yaml-fix will not hard-fail
  - Convert four classmethods to @staticmethod in changelog_utils.py
  (_strip_heading_like_emphasis, _convert_fenced_code_blocks_to_indented,
  _indented_block_looks_like_code, _format_indented_code_block_line)
  - Extract _contextual_patterns regex tuple to class-level constant
  _CONTEXTUAL_CODE_PATTERNS (compiled once, not per-call)
  - Add return type annotation to fake_run test helper
  - Fix is_valid comment: dt.validate() runs Levels 1-4, not 1-3
  - Apply dprint formatting to README.md

- **Fixed: Handles exceptions when getting CPU info, Kani, CI hardening** [`da415a5`](https://github.com/acgetchell/causal-triangulations/commit/da415a5)

  Corrects exception handling in hardware utils to specifically
  catch subprocess errors and other related exceptions when
  retrieving CPU information. This prevents the script from
  crashing when it fails to gather CPU details.

  Better job of checking Kani versions.

  Better way of installing ActionLint for CI.

- **Fixed: Correctly identifies estimates files in criterion runs** [`83f9de0`](https://github.com/acgetchell/causal-triangulations/commit/83f9de0)

  Fixes an issue where the performance analyzer was not correctly
  identifying estimates files in criterion runs, specifically when
  located in the "new" directory.

  Updates the glob pattern to search for "estimates.json" in all
  directories and then filters to only include files under "new" or
  "base" directories. This ensures that the analyzer correctly
  parses the performance data from criterion benchmark results.

- **Fix changelog_utils and performance_analysis and update CHANGELOG.md** [`38162bd`](https://github.com/acgetchell/causal-triangulations/commit/38162bd)

  Summary:

  Implemented resilient project-root detection with upward search for Cargo.toml or .git and guarded trend-analysis regression against zero-denominator cases in
  main() and PerformanceAnalyzer.analyze_trends().
  Annotated the strict SemVer pattern with inline comments, extracted long-title handling helpers (_format_long_title(), _format_split_title()), consolidated
  ANSI color codes into module constants (COLOR_GREEN etc.), and made the repository URL fallback configurable via CHANGELOG_REPO_URL (_get_repository_url()).
  Ran just commit-check to execute formatting, linting, and the full Rust test suite; all checks and tests passed successfully.

  Also fixed spelling error propagated by auto-changelog

- **Pre-merge fixes** [`0f6ec5a`](https://github.com/acgetchell/causal-triangulations/commit/0f6ec5a)

  Added comprehensive docstrings to parse_args(), load_report(), coverage_entries(), filter_entries(), and main() in scripts/coverage_report.py. Optimized
  spell-check to gather diff output with POSIX-compatible read loops and ensured just commit-check succeeds. Simplified validate-toml to lint directly from the
  repository root. Precompiled changelog classification regex patterns in scripts/enhance_commits.py, enriched helper type hints, made unrecognized header
  handling explicit, and wrapped main() in robust I/O error handling. Strengthened simulation validation in CdtConfig::validate() to detect configurations where
  no measurements would be taken post-thermalization while documenting the existing tilde expansion limitation. Confirmed all checks pass by running just
  commit-check.

- **Fix config.rs and other script errors** [`916d103`](https://github.com/acgetchell/causal-triangulations/commit/916d103)

  Enhances the project's testing and performance infrastructure
  by updating dependencies, refining test scripts, and improving
  code coverage reporting.

  Specifically:
  - Updates the clippy-sarif and sarif-fmt installation to use
  `cargo install --locked` for more reproducible builds.
  - Adds more explicit dependency requirements in `just setup`.
  - Modifies coverage reporting to be more robust, and adds new
  coverage configuration.

- **Fixed: Validates config and handles CLI arg parsing errors** [`cde9605`](https://github.com/acgetchell/causal-triangulations/commit/cde9605)

  Fixes the CLI argument parsing and adds comprehensive config validation to ensure simulation parameters are within acceptable ranges.  This includes checks
  for positive measurement frequency, vertices count, and
  temperature. Catches `SystemExit` exceptions and returns corresponding
  error codes.

  Also updates auto-changelog config and benchmark names for clarity.
  The CI workflow is modified to target the `examples/scripts` directory
  for linting and formatting checks.

- **Fixed: Action linearity check overflow and Tds deprecation** [`803ab24`](https://github.com/acgetchell/causal-triangulations/commit/803ab24)

  Addresses potential integer overflows in the action linearity
  check by adding a pre-check. Now the linearity assertion is only
  performed if simplex counts are within safe bounds.

  Also, marks legacy Tds-based simulation code as deprecated,
  guiding users towards the trait-based backend API for better
  abstraction and maintainability. The legacy code remains for
  backward compatibility but its usage is discouraged.

- **Fixed: Validates Delaunay property in CDT triangulation** [`ebff8ac`](https://github.com/acgetchell/causal-triangulations/commit/ebff8ac)

  Validates the Delaunay property within the Constrained Delaunay
  Triangulation (CDT) implementation by leveraging the `is_delaunay`
  method in the Delaunay backend. This ensures that triangulations
  conform to the Delaunay criteria, improving the robustness and
  correctness of the triangulation process. Adds tests for Delaunay
  validation.

- **ci: fix CodeCov** [`ef8ae5b`](https://github.com/acgetchell/causal-triangulations/commit/ef8ae5b)

- **ci: Fix** [`e7fc2b8`](https://github.com/acgetchell/causal-triangulations/commit/e7fc2b8)

- **build: fix libc** [`9ff914d`](https://github.com/acgetchell/causal-triangulations/commit/9ff914d)

- **Spade fixed.** [`58a78a6`](https://github.com/acgetchell/causal-triangulations/commit/58a78a6)

- **Fix spade to version 2.2.1** [`cfb0cae`](https://github.com/acgetchell/causal-triangulations/commit/cfb0cae)

  Update README

- **Fix modules** [`3d11b0c`](https://github.com/acgetchell/causal-triangulations/commit/3d11b0c)

- **Fix Kani** [`b36e6ae`](https://github.com/acgetchell/causal-triangulations/commit/b36e6ae)

- **Update Rust toolchain version and fix formatting in Triangle struct** [`6e46ced`](https://github.com/acgetchell/causal-triangulations/commit/6e46ced)

  - Update the Rust toolchain version in the GitHub Actions workflow file from `16499b5e05bf2e26879000db0c1d13f7e13fa3af` to `v1`.
  - Fix formatting in the Triangle struct by adding a comma after the `vertices` field declaration.

  This commit updates the Rust toolchain version used in the GitHub Actions workflow file and fixes formatting in the Triangle struct.

### Security

- **Merge pull request #71 from acgetchell/dependabot/github_actions/actions-rust-lang/setup-rust-toolchain-1.15.4**
  [`3187ca9`](https://github.com/acgetchell/causal-triangulations/commit/3187ca9)

  Bump actions-rust-lang/setup-rust-toolchain from 1.15.2 to 1.15.4

- **Merge pull request #73 from acgetchell/dependabot/github_actions/astral-sh/setup-uv-7.6.0**
  [`49fa916`](https://github.com/acgetchell/causal-triangulations/commit/49fa916)

  Bump astral-sh/setup-uv from 7.3.0 to 7.6.0

- **Merge pull request #72 from acgetchell/dependabot/github_actions/taiki-e/install-action-2.68.35**
  [`0780778`](https://github.com/acgetchell/causal-triangulations/commit/0780778)

  Bump taiki-e/install-action from 2.68.6 to 2.68.35

- **Merge pull request #64 from acgetchell/dependabot/github_actions/actions/upload-artifact-7.0.0**
  [`c09846c`](https://github.com/acgetchell/causal-triangulations/commit/c09846c)

  Bump actions/upload-artifact from 6.0.0 to 7.0.0

- **Merge pull request #45 from acgetchell/dependabot/github_actions/actions/setup-python-6.2.0**
  [`383eff9`](https://github.com/acgetchell/causal-triangulations/commit/383eff9)

  Bump actions/setup-python from 6.1.0 to 6.2.0

- **Merge branch 'main' into dependabot/github_actions/actions/setup-python-6.2.0**
  [`b1821ad`](https://github.com/acgetchell/causal-triangulations/commit/b1821ad)

- **Merge pull request #46 from acgetchell/dependabot/github_actions/actions/checkout-6.0.2**
  [`aaf39a4`](https://github.com/acgetchell/causal-triangulations/commit/aaf39a4)

  Bump actions/checkout from 5.0.1 to 6.0.2

- **Merge branch 'main' into dependabot/github_actions/actions/checkout-6.0.2** [`f5a1fda`](https://github.com/acgetchell/causal-triangulations/commit/f5a1fda)

- **Merge pull request #48 from acgetchell/dependabot/github_actions/astral-sh/setup-uv-7.3.0**
  [`d6be21d`](https://github.com/acgetchell/causal-triangulations/commit/d6be21d)

  Bump astral-sh/setup-uv from 7.1.6 to 7.3.0

- **Merge branch 'main' into dependabot/github_actions/astral-sh/setup-uv-7.3.0**
  [`6be3cdc`](https://github.com/acgetchell/causal-triangulations/commit/6be3cdc)

- **Merge pull request #52 from acgetchell/dependabot/github_actions/taiki-e/install-action-2.68.6**
  [`83e29fe`](https://github.com/acgetchell/causal-triangulations/commit/83e29fe)

  Bump taiki-e/install-action from 2.65.1 to 2.68.6

- **Merge pull request #27 from acgetchell/dependabot/github_actions/actions/checkout-6.0.1**
  [`be2bec8`](https://github.com/acgetchell/causal-triangulations/commit/be2bec8)

  Bump actions/checkout from 5.0.0 to 6.0.1

- **Merge pull request #29 from acgetchell/dependabot/github_actions/actions/cache-5**
  [`e7f5bd0`](https://github.com/acgetchell/causal-triangulations/commit/e7f5bd0)

  Bump actions/cache from 4 to 5

- **Merge pull request #30 from acgetchell/dependabot/github_actions/astral-sh/setup-uv-7.1.6**
  [`1a0889d`](https://github.com/acgetchell/causal-triangulations/commit/1a0889d)

  Bump astral-sh/setup-uv from 7.1.1 to 7.1.6

- **Merge pull request #31 from acgetchell/dependabot/github_actions/codecov/codecov-action-5.5.2**
  [`c19ad13`](https://github.com/acgetchell/causal-triangulations/commit/c19ad13)

  Bump codecov/codecov-action from 5.5.1 to 5.5.2

- **Merge pull request #26 from acgetchell/dependabot/cargo/dependencies-d5a2785ed2**
  [`a35c160`](https://github.com/acgetchell/causal-triangulations/commit/a35c160)

  Bump the dependencies group across 1 directory with 7 updates

- **Merge pull request #32 from acgetchell/dependabot/github_actions/actions/upload-artifact-6.0.0**
  [`d984312`](https://github.com/acgetchell/causal-triangulations/commit/d984312)

  Bump actions/upload-artifact from 4.6.2 to 6.0.0

- **Merge pull request #25 from acgetchell/dependabot/github_actions/actions/setup-python-6.1.0**
  [`5459160`](https://github.com/acgetchell/causal-triangulations/commit/5459160)

  Bump actions/setup-python from 6.0.0 to 6.1.0

- **Merge pull request #17 from acgetchell/dependabot/github_actions/astral-sh/setup-uv-7.1.1**
  [`f6453f1`](https://github.com/acgetchell/causal-triangulations/commit/f6453f1)

  Bump astral-sh/setup-uv from 7.1.0 to 7.1.1

- **Merge branch 'main' into dependabot/github_actions/astral-sh/setup-uv-7.1.1**
  [`2d341d7`](https://github.com/acgetchell/causal-triangulations/commit/2d341d7)

- **Merge pull request #16 from acgetchell/dependabot/cargo/dependencies-acf088eaf4**
  [`cb5eecf`](https://github.com/acgetchell/causal-triangulations/commit/cb5eecf)

  Bump clap from 4.5.49 to 4.5.50 in the dependencies group

- **Merge pull request #14 from acgetchell/dependabot/github_actions/actions-rust-lang/setup-rust-toolchain-1.15.2**
  [`b7a39e9`](https://github.com/acgetchell/causal-triangulations/commit/b7a39e9)

  Bump actions-rust-lang/setup-rust-toolchain from 1.15.0 to 1.15.2

- **Merge branch 'main' into dependabot/github_actions/actions-rust-lang/setup-rust-toolchain-1.15.2**
  [`9e494d8`](https://github.com/acgetchell/causal-triangulations/commit/9e494d8)

- **Merge pull request #13 from acgetchell/dependabot/github_actions/astral-sh/setup-uv-7.1.0**
  [`41be034`](https://github.com/acgetchell/causal-triangulations/commit/41be034)

  Bump astral-sh/setup-uv from 6.8.0 to 7.1.0

- **Merge pull request #15 from acgetchell/dependabot/github_actions/actions/github-script-8.0.0**
  [`a5bc67d`](https://github.com/acgetchell/causal-triangulations/commit/a5bc67d)

  Bump actions/github-script from 7.0.1 to 8.0.0

- **Merge pull request #9 from acgetchell/dependabot/github_actions/astral-sh/setup-uv-6.8.0**
  [`768a410`](https://github.com/acgetchell/causal-triangulations/commit/768a410)

  Bump astral-sh/setup-uv from 6.7.0 to 6.8.0

- **Merge pull request #3 from acgetchell/dependabot/github_actions/actions/cache-4.3.0**
  [`9ce5e23`](https://github.com/acgetchell/causal-triangulations/commit/9ce5e23)

  Bump actions/cache from 4.2.4 to 4.3.0

- **Merge branch 'main' into dependabot/github_actions/actions/cache-4.3.0** [`430a927`](https://github.com/acgetchell/causal-triangulations/commit/430a927)

- **Merge pull request #4 from acgetchell/dependabot/github_actions/actions/checkout-5**
  [`8b8ca5e`](https://github.com/acgetchell/causal-triangulations/commit/8b8ca5e)

  Bump actions/checkout from 4 to 5

- **Merge branch 'main' into dependabot/github_actions/actions/checkout-5** [`fb9d09d`](https://github.com/acgetchell/causal-triangulations/commit/fb9d09d)
