From 91dd5c10adf10d0197c2e72115adc0f154cf1ed8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2026 02:01:24 +0000 Subject: [PATCH] Version Packages --- .changeset/heavy-pandas-brake.md | 16 ---------------- CHANGELOG.md | 16 ++++++++++++++++ package.json | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) delete mode 100644 .changeset/heavy-pandas-brake.md diff --git a/.changeset/heavy-pandas-brake.md b/.changeset/heavy-pandas-brake.md deleted file mode 100644 index cf73d00..0000000 --- a/.changeset/heavy-pandas-brake.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -'@statelyai/graph': minor ---- - -Large performance overhaul of the algorithm hot paths: - -- `getStronglyConnectedComponents` is now an iterative typed-array Tarjan over the CSR (stack-safe, ~15x faster). -- `getTopologicalSort` is a CSR Kahn's pass with cached in-degrees (~4x faster, no more O(n²) queue). -- `isBipartite`/`getMaximumBipartiteMatching` 2-color directly over the cached CSR with no per-call adjacency rebuild (~60x faster on repeated queries). -- Bellman-Ford (`algorithm: 'bellman-ford'`) relaxes cached compact arc arrays; single-pair queries skip tie-predecessor bookkeeping entirely (~15x faster). -- Floyd-Warshall all-pairs uses a flat distance matrix with copy-on-write tie-predecessor lists and O(length) path materialization (~4x faster). -- `genBFS`/`genDFS`/`genPostorder` are hand-rolled chunked iterators (identical order and laziness semantics, no generator resume machinery; ~1.5-2x faster full traversals), and traversal snapshots now reuse the CSR's node snapshot instead of copying `graph.nodes` per call. -- Dijkstra / A* / bidirectional search read default edge weights from a cached per-arc `Float64Array` instead of loading edge objects in the inner loop. -- `getDegree` serves from a per-version degree map (one hashed lookup per call), and repeated indexed queries against the same graph skip the WeakMap via a one-entry memo. -- All-targets shortest-path reconstruction (`genShortestPaths`) materializes each path once via a shared backtracking buffer instead of per-level array spreads. - diff --git a/CHANGELOG.md b/CHANGELOG.md index d0516ed..20693cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # @statelyai/graph +## 2.3.0 + +### Minor Changes + +- [#34](https://github.com/statelyai/graph/pull/34) [`5a8eef6`](https://github.com/statelyai/graph/commit/5a8eef6b93d06e153d6a72526d85cf91a37128e2) Thanks [@davidkpiano](https://github.com/davidkpiano)! - Large performance overhaul of the algorithm hot paths: + + - `getStronglyConnectedComponents` is now an iterative typed-array Tarjan over the CSR (stack-safe, ~15x faster). + - `getTopologicalSort` is a CSR Kahn's pass with cached in-degrees (~4x faster, no more O(n²) queue). + - `isBipartite`/`getMaximumBipartiteMatching` 2-color directly over the cached CSR with no per-call adjacency rebuild (~60x faster on repeated queries). + - Bellman-Ford (`algorithm: 'bellman-ford'`) relaxes cached compact arc arrays; single-pair queries skip tie-predecessor bookkeeping entirely (~15x faster). + - Floyd-Warshall all-pairs uses a flat distance matrix with copy-on-write tie-predecessor lists and O(length) path materialization (~4x faster). + - `genBFS`/`genDFS`/`genPostorder` are hand-rolled chunked iterators (identical order and laziness semantics, no generator resume machinery; ~1.5-2x faster full traversals), and traversal snapshots now reuse the CSR's node snapshot instead of copying `graph.nodes` per call. + - Dijkstra / A\* / bidirectional search read default edge weights from a cached per-arc `Float64Array` instead of loading edge objects in the inner loop. + - `getDegree` serves from a per-version degree map (one hashed lookup per call), and repeated indexed queries against the same graph skip the WeakMap via a one-entry memo. + - All-targets shortest-path reconstruction (`genShortestPaths`) materializes each path once via a shared backtracking buffer instead of per-level array spreads. + ## 2.2.0 ### Minor Changes diff --git a/package.json b/package.json index 19f4e18..2ae6b0a 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "packageManager": "pnpm@10.28.2", "type": "module", "sideEffects": false, - "version": "2.2.0", + "version": "2.3.0", "description": "A TypeScript-first graph library with plain JSON-serializable objects", "author": "David Khourshid ", "license": "MIT",