From 4d11de49dccd0b158ec5216390c5186b3931a7d0 Mon Sep 17 00:00:00 2001 From: TimothyVang Date: Sat, 2 May 2026 08:45:58 -0500 Subject: [PATCH] chore(deps): pin langgraph version that passes fanout-race test [W2.B.5] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pin langgraph to ==0.2.76, the version exercised by the W2.B.4 fanout-race test: - Send-based parallel-edge dispatch via add_conditional_edges(START, router, [\"branch\"]); - reducer-annotated TypedDict fields merge correctly; - 4-way fanout with 0-500ms randomized delays merges to byte- identical executor_results across runs (HMAC ledger chain reproducibility per ARCHITECTURE.md ยง2). Floor-with-ceiling (>=0.2.50,<0.3) is replaced with an exact pin because BUILD_PLAN W2.B.5 specifies pinning to the version that passes the fanout race; bumping the floor without rerunning the race test is a chain-of-custody risk. Bumping the pin requires running pytest tests/graph/test_fanout_race.py against the new version first. Tests: 31 passed unchanged. --- pyproject.toml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 12c8e29..f8735d9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,8 +10,11 @@ authors = [ ] dependencies = [ - # LangGraph orchestration (MIT) - "langgraph>=0.2.50,<0.3", + # LangGraph orchestration (MIT). Pinned to the version that passes the + # W2.B.4 fanout-race test (Send-based parallel-edge dispatch + reducer- + # annotated state). Bumping requires a fresh fanout-race run; see + # BUILD_PLAN W2.B.5. + "langgraph==0.2.76", # Pydantic v2 schemas (MIT) "pydantic>=2.7,<3", # blake3 hashing (CC0/Apache-2.0)