Pin langgraph-prebuilt<1.0.10 to fix preview CI (closes #15)#19
Merged
Conversation
) langgraph-prebuilt 1.0.10 added `from langgraph.runtime import ExecutionInfo, ServerInfo` to prebuilt/tool_node.py — symbols that arrived in langgraph 1.0.10+. With our pinned langgraph==1.0.2 and an unpinned langgraph-prebuilt, pip resolves to the latest (1.1.0) which crashes the chatbot container at import time: ImportError: cannot import name 'ExecutionInfo' from 'langgraph.runtime' That import failure is what the `preview` PR-CI job has been failing on since the build-base-images job started succeeding (commit 405b10a). Every open PR hits it. Pin langgraph-prebuilt<1.0.10 in all three requirements files (requirements/requirements-base.txt + the two base-image requirements.txt copies). Pip now resolves to langgraph-prebuilt 1.0.9 which only imports `Runtime` from langgraph.runtime — a symbol that exists in langgraph 1.0.2. Verified the resolver picks 1.0.9 via `pip install --dry-run langgraph==1.0.2 langgraph-prebuilt<1.0.10`. When langgraph itself is bumped past 1.0.10, this pin can be dropped. Closes #15. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Pins langgraph-prebuilt<1.0.10 alongside the existing langgraph==1.0.2 pin to prevent CI/preview container startup from failing due to an upstream langgraph-prebuilt import that requires newer langgraph.runtime symbols (issue #15).
Changes:
- Add an explicit
langgraph-prebuilt<1.0.10constraint to keeplanggraph-prebuiltcompatible withlanggraph==1.0.2. - Apply the same pin consistently across the shared base requirements file and both base-image template requirements files.
- Document the rationale in
requirements/requirements-base.txt, with lightweight pointers from the template copies.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
requirements/requirements-base.txt |
Adds rationale + pin to prevent langgraph-prebuilt/langgraph version skew from breaking imports. |
src/cli/templates/dockerfiles/base-python-image/requirements.txt |
Mirrors the langgraph-prebuilt<1.0.10 pin used for base image builds. |
src/cli/templates/dockerfiles/base-pytorch-image/requirements.txt |
Mirrors the langgraph-prebuilt<1.0.10 pin used for base image builds. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
swinney
pushed a commit
that referenced
this pull request
Jun 3, 2026
First fix attempt pinned `langgraph-prebuilt<1.0.10`, expecting 1.0.9 to be the last working version. PR #19's first preview-job run revealed 1.0.9 already has the broken import: 1.0.8: from langgraph.runtime import Runtime ✓ 1.0.9: from langgraph.runtime import ExecutionInfo, ServerInfo ✗ 1.0.10: same break Tighten to <1.0.9. Resolver now picks 1.0.8 (verified via `pip install --dry-run langgraph==1.0.2 langgraph-prebuilt<1.0.9`). 1.0.8 only imports Runtime, which exists in langgraph 1.0.2. Comment in requirements/requirements-base.txt updated with the correct boundary so the next person doesn't repeat the off-by-one. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
First fix attempt pinned `langgraph-prebuilt<1.0.10`, expecting 1.0.9 to be the last working version. PR #19's first preview-job run revealed 1.0.9 already has the broken import: 1.0.8: from langgraph.runtime import Runtime ✓ 1.0.9: from langgraph.runtime import ExecutionInfo, ServerInfo ✗ 1.0.10: same break Tighten to <1.0.9. Resolver now picks 1.0.8 (verified via `pip install --dry-run langgraph==1.0.2 langgraph-prebuilt<1.0.9`). 1.0.8 only imports Runtime, which exists in langgraph 1.0.2. Comment in requirements/requirements-base.txt updated with the correct boundary so the next person doesn't repeat the off-by-one. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2ec2077 to
d3d6edb
Compare
swinney
pushed a commit
that referenced
this pull request
Jun 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pin
langgraph-prebuilt<1.0.10in all three requirements files. Resolves theImportError: cannot import name 'ExecutionInfo' from 'langgraph.runtime'that has been blocking thepreviewPR-CI job on every open PR sincebuild-base-imagesstarted succeeding (#13).Root cause
langgraph==1.0.2is pinned inrequirements/requirements-base.txt(and the two base-image copies).langgraph-prebuiltis a transitive dep, unpinned, so pip resolves to the latest (1.1.0).langgraph-prebuilt 1.0.10+addsfrom langgraph.runtime import ExecutionInfo, ServerInfotoprebuilt/tool_node.py— symbols that arrived inlanggraph 1.0.10+(don't exist in 1.0.2)./api/healthever responds.Fix
Pin
langgraph-prebuilt<1.0.10so pip resolves to 1.0.9, which only importsRuntimefromlanggraph.runtime(a symbol that exists inlanggraph 1.0.2).Verified locally:
When
langgraphis bumped past 1.0.10 in a future PR, this pin can be dropped (langgraph-prebuiltecosystem versions ship in lockstep withlanggraph).Test plan
pip install --dry-runconfirms resolver picks 1.0.9tool_node.pyacross versions 1.0.0 → 1.0.10: confirmed 1.0.9 imports onlyRuntimewhile 1.0.10 adds the breaking importspreviewjob goes green on this PRCloses #15.
🤖 Generated with Claude Code