Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
7812ef6
refactor(deps.py): reorganize imports for clarity and compliance with…
Cristhianzl Dec 10, 2025
3ad9b02
fix(workflows): include src/lfx/uv.lock in git add command to ensure …
Cristhianzl Dec 7, 2025
cca4209
chore(nightly_build.yml): remove unnecessary directory change for lfx…
Cristhianzl Dec 7, 2025
8830b3a
chore(release_nightly): update build command to include --no-sources …
Cristhianzl Dec 7, 2025
712cfe7
chore(chat.py): remove unused future annotations import to clean up code
Cristhianzl Dec 7, 2025
8b0fcd4
fix(chat.py): add future annotations import for better type hinting s…
Cristhianzl Dec 7, 2025
8dad2c6
chore: print version
Adam-Aghili Dec 8, 2025
06e9724
chore: use release_tag as version
Adam-Aghili Dec 8, 2025
61c5c3c
fix: --prerelease=allow
Adam-Aghili Dec 8, 2025
6330f8b
[autofix.ci] apply automated fixes
autofix-ci[bot] Dec 10, 2025
927a4d2
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Dec 10, 2025
8d6eef6
[autofix.ci] apply automated fixes (attempt 3/3)
autofix-ci[bot] Dec 10, 2025
27c8912
chore(deps.py): add noqa comments to imports to suppress specific lin…
Cristhianzl Dec 10, 2025
2673211
Merge branch 'cz/fix-nightly-main' of github.com:langflow-ai/langflow…
Cristhianzl Dec 10, 2025
2850fc4
[autofix.ci] apply automated fixes
autofix-ci[bot] Dec 10, 2025
a0a76d2
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Dec 10, 2025
b12a752
[autofix.ci] apply automated fixes (attempt 3/3)
autofix-ci[bot] Dec 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/cross-platform-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ jobs:
find ./base-dist -name "*.whl" -type f
WHEEL_FILE=$(find ./base-dist -name "*.whl" -type f | head -1)
if [ -n "$WHEEL_FILE" ]; then
uv pip install --python ./test-env/Scripts/python.exe "$WHEEL_FILE"
uv pip install --prerelease=allow --python ./test-env/Scripts/python.exe "$WHEEL_FILE"
else
echo "No wheel file found in ./base-dist/"
exit 1
Expand Down Expand Up @@ -231,7 +231,7 @@ jobs:
find ./base-dist -name "*.whl" -type f
WHEEL_FILE=$(find ./base-dist -name "*.whl" -type f | head -1)
if [ -n "$WHEEL_FILE" ]; then
uv pip install --python ./test-env/bin/python "$WHEEL_FILE"
uv pip install --prerelease=allow --python ./test-env/bin/python "$WHEEL_FILE"
else
echo "No wheel file found in ./base-dist/"
exit 1
Expand Down Expand Up @@ -475,7 +475,7 @@ jobs:
find ./base-dist -name "*.whl" -type f
WHEEL_FILE=$(find ./base-dist -name "*.whl" -type f | head -1)
if [ -n "$WHEEL_FILE" ]; then
uv pip install --python ./test-env/Scripts/python.exe "$WHEEL_FILE"
uv pip install --prerelease=allow --python ./test-env/Scripts/python.exe "$WHEEL_FILE"
else
echo "No wheel file found in ./base-dist/"
exit 1
Expand All @@ -489,7 +489,7 @@ jobs:
find ./main-dist -name "*.whl" -type f
WHEEL_FILE=$(find ./main-dist -name "*.whl" -type f | head -1)
if [ -n "$WHEEL_FILE" ]; then
uv pip install --python ./test-env/Scripts/python.exe "$WHEEL_FILE"
uv pip install --prerelease=allow --python ./test-env/Scripts/python.exe "$WHEEL_FILE"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Inconsistent prerelease flag for main package in experimental tests.

Line 492 adds --prerelease=allow for Windows experimental main package installation, but line 534 (Unix experimental main package) does not have this flag. If the main package may depend on prerelease versions (which line 492 suggests), both platforms should have consistent flags.

Apply this diff to add consistency:

       WHEEL_FILE=$(find ./main-dist -name "*.whl" -type f | head -1)
       if [ -n "$WHEEL_FILE" ]; then
-        uv pip install --python ./test-env/bin/python "$WHEEL_FILE"
+        uv pip install --prerelease=allow --python ./test-env/bin/python "$WHEEL_FILE"
       else
         echo "No wheel file found in ./main-dist/"
         exit 1

Also applies to: 534-534

🤖 Prompt for AI Agents
.github/workflows/cross-platform-test.yml lines 492 and 534: the Windows
experimental main-package install uses the --prerelease=allow flag but the Unix
counterpart does not, causing inconsistent behavior; update the Unix
experimental install command at line 534 to include --prerelease=allow (or
alternately remove the flag from line 492 if prereleases are undesired) so both
platforms use the same prerelease handling, ensuring the main package and its
dependencies are installed consistently across OSes.

else
echo "No wheel file found in ./main-dist/"
exit 1
Expand Down Expand Up @@ -517,7 +517,7 @@ jobs:
find ./base-dist -name "*.whl" -type f
WHEEL_FILE=$(find ./base-dist -name "*.whl" -type f | head -1)
if [ -n "$WHEEL_FILE" ]; then
uv pip install --python ./test-env/bin/python "$WHEEL_FILE"
uv pip install --prerelease=allow --python ./test-env/bin/python "$WHEEL_FILE"
else
echo "No wheel file found in ./base-dist/"
exit 1
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/nightly_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,6 @@ jobs:

uv lock
cd src/backend/base && uv lock && cd ../../..
cd src/lfx && uv lock && cd ../..

git add pyproject.toml src/backend/base/pyproject.toml src/lfx/pyproject.toml uv.lock src/backend/base/uv.lock
git commit -m "Update version and project name"
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,8 @@ jobs:
- name: Check if pre-release
if: inputs.pre_release
run: |
version=$(uv tree | grep 'langflow' | grep -v 'langflow-base' | awk '{print $2}' | sed 's/^v//')
version="${{ inputs.release_tag }}"
echo "$version"
if [[ "${version}" =~ ^([0-9]+\.)?([0-9]+\.)?[0-9]+((a|b|rc|dev|post)([0-9]+))$ ]]; then
Comment on lines +230 to 232
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

head -50 .github/workflows/release.yml

Repository: langflow-ai/langflow

Length of output: 1525


🏁 Script executed:

wc -l .github/workflows/release.yml

Repository: langflow-ai/langflow

Length of output: 97


🏁 Script executed:

sed -n '220,240p' .github/workflows/release.yml

Repository: langflow-ai/langflow

Length of output: 904


🏁 Script executed:

sed -n '1,100p' .github/workflows/release.yml

Repository: langflow-ai/langflow

Length of output: 3474


🏁 Script executed:

git tag -l | head -30

Repository: langflow-ai/langflow

Length of output: 46


🏁 Script executed:

grep -n "release_tag\|version" .github/workflows/release.yml | head -30

Repository: langflow-ai/langflow

Length of output: 2056


🏁 Script executed:

git log --oneline --decorate | grep tag | head -20

Repository: langflow-ai/langflow

Length of output: 46


🏁 Script executed:

git describe --tags 2>/dev/null || echo "No tags found"

Repository: langflow-ai/langflow

Length of output: 77


🏁 Script executed:

git show-ref --tags | head -20

Repository: langflow-ai/langflow

Length of output: 46


Strip the "v" prefix from release_tag before validating prerelease version format.

The regex at line 232 expects a version string without a "v" prefix (e.g., 1.2.3a1), but Git tags commonly use the "v" prefix (e.g., v1.2.3a1). This pattern is already handled elsewhere in the workflow at line 157 with sed 's/^v//'. Without stripping the prefix here, the prerelease validation will reject valid tags that follow the standard Git convention.

Add prefix stripping before the regex check:

      - name: Check if pre-release
        if: inputs.pre_release
        run: |
          version="${{ inputs.release_tag }}"
+         version="${version#v}"
          echo "$version"
          if [[ "${version}" =~ ^([0-9]+\.)?([0-9]+\.)?[0-9]+((a|b|rc|dev|post)([0-9]+))$ ]]; then
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
version="${{ inputs.release_tag }}"
echo "$version"
if [[ "${version}" =~ ^([0-9]+\.)?([0-9]+\.)?[0-9]+((a|b|rc|dev|post)([0-9]+))$ ]]; then
version="${{ inputs.release_tag }}"
version="${version#v}"
echo "$version"
if [[ "${version}" =~ ^([0-9]+\.)?([0-9]+\.)?[0-9]+((a|b|rc|dev|post)([0-9]+))$ ]]; then
🤖 Prompt for AI Agents
In .github/workflows/release.yml around lines 230 to 232, the prerelease regex
expects a version without a leading "v" but the code doesn't strip that prefix
here; update the script to remove a leading "v" from the version variable before
running the regex check (e.g., normalize the value by stripping a leading 'v'
via shell parameter expansion or sed) so tags like "v1.2.3a1" are validated
correctly against the existing regex.

echo "Pre-release version detected. Continuing with the release."
else
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ jobs:
run: |
rm -rf src/backend/base/dist
rm -rf dist
make build base=true args="--wheel"
make build base=true args="--no-sources --wheel"

- name: Test Langflow Base CLI
run: |
Expand Down
13 changes: 9 additions & 4 deletions src/backend/base/langflow/services/deps.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,27 @@
if TYPE_CHECKING:
from collections.abc import AsyncGenerator

from lfx.services.settings.service import SettingsService
from sqlmodel.ext.asyncio.session import AsyncSession

from langflow.services.cache.service import AsyncBaseCacheService, CacheService
from langflow.services.chat.service import ChatService
from langflow.services.database.service import DatabaseService
from langflow.services.job_queue.service import JobQueueService
from langflow.services.session.service import SessionService
from langflow.services.state.service import StateService
from langflow.services.storage.service import StorageService
from langflow.services.store.service import StoreService
from langflow.services.task.service import TaskService
from langflow.services.telemetry.service import TelemetryService
from langflow.services.tracing.service import TracingService
from langflow.services.variable.service import VariableService

# These imports MUST be outside TYPE_CHECKING because FastAPI uses eval_str=True
# to evaluate type annotations, and these types are used as return types for
# dependency functions that FastAPI evaluates at module load time.
from lfx.services.settings.service import SettingsService # noqa: TC002

from langflow.services.job_queue.service import JobQueueService # noqa: TC001
from langflow.services.storage.service import StorageService # noqa: TC001
from langflow.services.telemetry.service import TelemetryService # noqa: TC001


def get_service(service_type: ServiceType, default=None):
"""Retrieves the service instance for the given service type.
Expand Down
2 changes: 1 addition & 1 deletion src/lfx/src/lfx/_assets/component_index.json

Large diffs are not rendered by default.

Loading