Skip to content

Conversation

@Adam-Aghili
Copy link
Collaborator

@Adam-Aghili Adam-Aghili commented Jan 14, 2026

prevent release workflow from overwriting images if they already exist. add a flag to allow overwrite if we absolutely need it.

This GHA overwrote 1.7.1-amd64 and 1.7.1-arm64 with 1.7.2 accidently

gh actions used to test:
valid dry-run (should not prevent workflow)
miss matched release_tag and pyproject.toml version
pypi already exists
ghcr.io already exists
docker.io already exists

Summary by CodeRabbit

Release Notes

  • Documentation

    • Updated release process documentation with improved branch model details and refined RC tag examples.
  • Chores

    • Enhanced release workflow validation to prevent accidental image overwrites.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 14, 2026

Walkthrough

The pull request introduces safeguards against accidental Docker image overwrites by adding a new workflow input and validation job to the release workflow. It also updates the secrets baseline metadata and restructures release process documentation with improved formatting and a branch model table.

Changes

Cohort / File(s) Summary
Workflow Enhancement
.github/workflows/release.yml
Added overwrite_previous_image boolean input (default false) and new Prevent Image Overwrite job that validates release tags, checks PyPI for existing versions, and queries Docker Hub/GHCR to prevent image overwrites unless explicitly enabled. Updated CI workflow to depend on this new job.
Secrets Metadata
.secrets.baseline
Updated baseline entry for release.yml with new line number reference (122→208) and regenerated timestamp.
Documentation
RELEASE.md
Refactored release process documentation with reformatted bullet points, converted emphasis styles, updated RC tag example format (vX.Y.Z-rc.N → X.Y.Z-rc.N), and introduced a new Branch Model section as a structured table.

Sequence Diagram(s)

sequenceDiagram
    participant GHA as GitHub Actions
    participant FS as File System
    participant PyPI as PyPI API
    participant DHreg as Docker Hub Registry
    participant GHreg as GHCR Registry

    GHA->>FS: Checkout code at release_tag
    GHA->>FS: Read pyproject.toml
    FS-->>GHA: Extract version
    GHA->>GHA: Validate tag matches version
    GHA->>PyPI: Check if version exists
    PyPI-->>GHA: Version status
    alt Version exists on PyPI
        GHA->>GHA: Fail - prevent overwrite
    end
    GHA->>DHreg: Login to Docker Hub
    GHA->>GHreg: Login to GHCR
    GHA->>GHreg: Check if image tag exists
    GHreg-->>GHA: Image existence status
    alt Image exists on GHCR
        GHA->>GHA: Fail - prevent overwrite
    end
    GHA->>DHreg: Check if image tag exists
    DHreg-->>GHA: Image existence status
    alt Image exists on Docker Hub
        GHA->>GHA: Fail - prevent overwrite
    end
    GHA->>GHA: All checks passed - proceed
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 5 | ❌ 2
❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Test Quality And Coverage ⚠️ Warning PR introduces validation logic in GitHub Actions workflow but includes no automated tests for complex shell scripts with validation bugs already identified in review comments. Extract version validation logic into testable Python script with pytest coverage for exact matching, version formats, PyPI responses, and edge cases like 1.7.10 vs 1.7.1.
Test Coverage For New Implementations ❓ Inconclusive GitHub Actions workflows are infrastructure changes typically validated through manual testing and code review rather than traditional unit tests. The PR lacks formal test files but author manually tested the workflow with multiple inputs. Clarify if infrastructure/workflow changes require formal tests or if manual testing and code review are acceptable. Consider establishing workflow testing framework using tools like act if formal tests are mandated.
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding a mechanism to prevent Docker image overwrite by default, which is the primary objective of the PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Test File Naming And Structure ✅ Passed The custom check for test file naming and structure is not applicable to this PR; only workflow, configuration, and documentation files were modified.
Excessive Mock Usage Warning ✅ Passed PR modifies workflow configuration, secrets baseline, and documentation only—no test files containing mocks are present.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch aka-prevent-image-overwrite

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Jan 14, 2026
@codecov
Copy link

codecov bot commented Jan 14, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 33.92%. Comparing base (fbce091) to head (3e726b4).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main   #11305      +/-   ##
==========================================
- Coverage   34.06%   33.92%   -0.14%     
==========================================
  Files        1415     1408       -7     
  Lines       67293    66774     -519     
  Branches     9932     9858      -74     
==========================================
- Hits        22921    22654     -267     
+ Misses      43175    42927     -248     
+ Partials     1197     1193       -4     
Flag Coverage Δ
backend 52.48% <ø> (-0.89%) ⬇️
frontend 15.99% <ø> (+0.10%) ⬆️
lfx 40.81% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 36 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In @.github/workflows/release.yml:
- Around line 143-147: The current check uses contains() with inputs.release_tag
and steps.version.outputs.version which allows partial matches (e.g., "1.7.10"
contains "1.7.1"); replace the contains-based condition with an exact comparison
between inputs.release_tag and steps.version.outputs.version (use the GitHub
Actions expression equality/inequality operator) so the step only fails when the
two values are not exactly equal; update the if expression that references
inputs.release_tag and steps.version.outputs.version accordingly and keep the
existing error message and exit behavior.
- Around line 149-154: Normalize the release tag by stripping a leading "v" from
inputs.release_tag and then perform an exact match against pip index versions
output to avoid partial matches; specifically, compute a VERSION from ${{
inputs.release_tag }} with any leading "v" removed, then replace the current
grep -q '${{ inputs.release_tag }}' check with a grep that matches the whole
line (e.g., using grep -x or grep -E "^$VERSION$") against the output of pip
index versions langflow so "v1.7.1" matches "1.7.1" and "1.7.1" does not falsely
match "1.7.10".
🧹 Nitpick comments (1)
.github/workflows/release.yml (1)

116-120: Docker registry checks run even when Docker builds are not requested.

The prevent-image-overwrite job checks ghcr.io and docker.io regardless of whether Docker builds are enabled. This could block a PyPI-only release if images happen to already exist from a previous release.

Consider making the Docker registry checks conditional:

♻️ Suggested approach
   prevent-image-overwrite:
     name: Prevent Image Overwrite
     runs-on: ubuntu-latest
     if: ${{ !inputs.overwrite_previous_image }}
     needs: [validate-tag, validate-dependencies]
     steps:
       # ... version checks ...

+      # Only check Docker registries if Docker builds are requested
       - name: Login to Docker Hub
+        if: ${{ inputs.build_docker_base || inputs.build_docker_main }}
         uses: docker/login-action@v3
         # ...

       - name: Login to GitHub Container Registry
+        if: ${{ inputs.build_docker_base || inputs.build_docker_main }}
         uses: docker/login-action@v3
         # ...

       - name: Check if image tag exists in ghcr.io
         id: check-ghcr
+        if: ${{ inputs.build_docker_base || inputs.build_docker_main }}
         # ...

Apply similar conditions to all Docker registry steps.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c46a3ee and c0736fe.

📒 Files selected for processing (3)
  • .github/workflows/release.yml
  • .secrets.baseline
  • RELEASE.md
🧰 Additional context used
🪛 LanguageTool
RELEASE.md

[grammar] ~28-~28: Ensure spelling is correct
Context: ...ek. ### 2. Desktop QA Once OSS QA and bugfixing are complete, create a Desktop release ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~39-~39: Ensure spelling is correct
Context: ...t a week. ### 3. Release After QA and bugfixing are complete for both OSS and Desktop: ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (410)
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 44/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 29/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 12/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
  • GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 44/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 29/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 12/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
  • GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 44/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 29/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
  • GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 44/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 29/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
  • GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 44/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 29/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
  • GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 44/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
  • GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
  • GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
  • GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
  • GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
  • GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
  • GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
  • GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
🔇 Additional comments (6)
.secrets.baseline (1)

166-166: LGTM!

The secret baseline updates correctly reflect the line number shift (122 → 208) caused by the new prevent-image-overwrite job in the release workflow, along with an updated generation timestamp.

Also applies to: 1531-1531

.github/workflows/release.yml (3)

51-55: LGTM!

The new overwrite_previous_image input has a sensible safe default (false) that prevents accidental overwrites while allowing explicit override when needed.


162-167: Verify usage of TEMP_GHCR_TOKEN instead of GITHUB_TOKEN.

The GHCR login uses secrets.TEMP_GHCR_TOKEN instead of the standard secrets.GITHUB_TOKEN. If this is temporary for testing, consider updating to use GITHUB_TOKEN for production, or document why a separate token is required.


197-208: LGTM!

The CI job dependency correctly includes prevent-image-overwrite. When overwrite_previous_image is true, the validation job is skipped and CI proceeds normally. When false, the validation must pass before CI runs.

RELEASE.md (2)

45-50: LGTM! The Branch Model table is a valuable addition.

The new table clearly documents the purpose and merge policy for each branch type, which improves clarity for release contributors.


102-103: Verify RC tag format consistency.

The example changed from vX.Y.Z-rc.N to 1.8.0-rc.1 (no 'v' prefix). Ensure this matches the actual tagging convention used in the release workflow. Line 73 still shows git tag vX.Y.Z with the 'v' prefix for final releases.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

Comment on lines +143 to +147
- name: Check if release_tag matches a version in pyproject.toml
if: ${{ !contains(inputs.release_tag, steps.version.outputs.version) }}
run: |
echo "❌ release_tag '${{ inputs.release_tag }}' does not match pyproject.toml version '${{ steps.version.outputs.version }}'"
exit 1
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 | 🟠 Major

Version matching with contains() may cause false positives.

The contains() check can incorrectly pass when the release_tag partially matches the version. For example, if release_tag=1.7.10 and version=1.7.1, the check passes because "1.7.10" contains "1.7.1".

Consider using an exact match or stricter comparison:

🔧 Suggested fix for exact matching
-      - name: Check if release_tag matches a version in pyproject.toml
-        if: ${{ !contains(inputs.release_tag, steps.version.outputs.version) }}
-        run: |
-          echo "❌ release_tag '${{ inputs.release_tag }}' does not match pyproject.toml version '${{ steps.version.outputs.version }}'"
-          exit 1
+      - name: Check if release_tag matches version in pyproject.toml
+        run: |
+          RELEASE_TAG="${{ inputs.release_tag }}"
+          VERSION="${{ steps.version.outputs.version }}"
+          # Strip leading 'v' if present for comparison
+          RELEASE_TAG_NORMALIZED="${RELEASE_TAG#v}"
+          if [ "$RELEASE_TAG_NORMALIZED" != "$VERSION" ]; then
+            echo "❌ release_tag '$RELEASE_TAG' does not match pyproject.toml version '$VERSION'"
+            exit 1
+          fi
+          echo "✅ Version match confirmed: $VERSION"
🤖 Prompt for AI Agents
In @.github/workflows/release.yml around lines 143 - 147, The current check uses
contains() with inputs.release_tag and steps.version.outputs.version which
allows partial matches (e.g., "1.7.10" contains "1.7.1"); replace the
contains-based condition with an exact comparison between inputs.release_tag and
steps.version.outputs.version (use the GitHub Actions expression
equality/inequality operator) so the step only fails when the two values are not
exactly equal; update the if expression that references inputs.release_tag and
steps.version.outputs.version accordingly and keep the existing error message
and exit behavior.

Comment on lines 149 to 154
- name: Check if package version already exists on pypi
run: |
if pip index versions langflow | grep -q '${{ inputs.release_tag }}'; then
echo "❌ Package version '${{ inputs.release_tag }}' already exists in pypi."
exit 1
fi
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 | 🟠 Major

PyPI version check may fail with 'v' prefix and has partial match risk.

Two issues with this check:

  1. If release_tag includes a 'v' prefix (e.g., v1.7.1), but pip index versions returns bare versions (1.7.1), the grep won't match
  2. Partial matching means 1.7.1 would match 1.7.10
🔧 Suggested fix
       - name: Check if package version already exists on pypi
         run: |
-          if pip index versions langflow | grep -q '${{ inputs.release_tag }}'; then
-            echo "❌ Package version '${{ inputs.release_tag }}' already exists in pypi."
+          # Strip 'v' prefix if present for PyPI lookup
+          VERSION="${{ inputs.release_tag }}"
+          VERSION="${VERSION#v}"
+          if pip index versions langflow 2>/dev/null | grep -qw "$VERSION"; then
+            echo "❌ Package version '$VERSION' already exists on PyPI."
             exit 1
           fi
+          echo "✅ Version $VERSION not found on PyPI"
🤖 Prompt for AI Agents
In @.github/workflows/release.yml around lines 149 - 154, Normalize the release
tag by stripping a leading "v" from inputs.release_tag and then perform an exact
match against pip index versions output to avoid partial matches; specifically,
compute a VERSION from ${{ inputs.release_tag }} with any leading "v" removed,
then replace the current grep -q '${{ inputs.release_tag }}' check with a grep
that matches the whole line (e.g., using grep -x or grep -E "^$VERSION$")
against the output of pip index versions langflow so "v1.7.1" matches "1.7.1"
and "1.7.1" does not falsely match "1.7.10".

@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Jan 14, 2026
@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Jan 14, 2026
@Adam-Aghili Adam-Aghili enabled auto-merge January 14, 2026 22:05
@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Jan 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants