From 6e65f4a43c7fdc6428a3b656c54c4a1ace16143d Mon Sep 17 00:00:00 2001 From: SkalskiP Date: Tue, 22 Sep 2026 11:14:38 +0200 Subject: [PATCH 1/6] Add Grok 4.7 to SpaceXAI block Register grok-4.7 in spacexai@v3 with low/medium/high/xhigh reasoning levels. Object detection reuses the existing percent-of-image box_2d prompt shared with Grok 4.5/4.6. Extend the reasoning contract guards to cover spacexai@v3 and add manifest tests for the new model id. Co-authored-by: Cursor --- workflows/CHANGELOG.md | 6 +++++ .../models/foundation/spacexai/v3.py | 19 +++++++++++---- .../common/test_reasoning_contract.py | 12 +++++++++- .../models/foundation/test_spacexai_v3.py | 23 +++++++++++++++++++ 4 files changed, 54 insertions(+), 6 deletions(-) diff --git a/workflows/CHANGELOG.md b/workflows/CHANGELOG.md index 61913de8ed..d677ff5815 100644 --- a/workflows/CHANGELOG.md +++ b/workflows/CHANGELOG.md @@ -2,6 +2,12 @@ ## Unreleased +### Added + +- SpaceXAI block (`roboflow_core/spacexai@v3`): `grok-4.7` model option with `low` / `medium` / + `high` / `xhigh` reasoning effort. Object detection reuses the existing percent-of-image + `box_2d` prompt. + --- ## `0.1.2` diff --git a/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py b/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py index 4e8389c29f..1a5ad045aa 100644 --- a/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py +++ b/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py @@ -3,7 +3,8 @@ Calls Grok vision models via xAI's OpenAI-compatible Responses API, either directly with a user-provided xAI key or through Roboflow's ``apiproxy/xai`` managed-key proxy. Object-detection prompting uses the percent-of-image -``box_2d`` contract validated in the vlm-exam benchmark for Grok 4.5/4.6. +``box_2d`` contract validated in the vlm-exam benchmark for Grok 4.5/4.6; +Grok 4.7 shares the same prompt contract. Same surface as ``spacexai@v2``, plus in-block decoding of the model answer: ``predictions``, ``error_status`` and ``inference_id`` outputs sit @@ -75,6 +76,11 @@ # grok-4.5 `xhigh` excluded: xAI silently downgrades it to `high`. GROK_MODELS = [ + { + "id": "grok-4.7", + "name": "Grok 4.7", + "reasoning_levels": ["low", "medium", "high", "xhigh"], + }, { "id": "grok-4.6", "name": "Grok 4.6", @@ -102,7 +108,8 @@ # Grok grounds objects with `box_2d` percentages of image width and height # - the shared `xyxy_percent` contract, whose prompt wording is the -# vlm-exam template this block was benchmarked with for Grok 4.5/4.6. +# vlm-exam template this block was benchmarked with for Grok 4.5/4.6 and +# reused unchanged for Grok 4.7. DETECTION_BOX_FORMAT = "xyxy_percent" SUPPORTED_TASK_TYPES_LIST = [ @@ -149,6 +156,7 @@ Images for object detection are sent at original resolution as lossless PNG with `detail: "high"`, matching the vlm-exam benchmark setup for Grok 4.5/4.6. +Grok 4.7 uses the same detection prompt. ## Version Differences @@ -278,7 +286,7 @@ class BlockManifest(WorkflowBlockManifest): ] = Field( default="grok-4.6", description="Model to be used", - examples=["grok-4.6", "grok-4.5", "$inputs.grok_model"], + examples=["grok-4.7", "grok-4.6", "grok-4.5", "$inputs.grok_model"], json_schema_extra={ "values_metadata": MODEL_VERSION_METADATA, }, @@ -293,7 +301,8 @@ class BlockManifest(WorkflowBlockManifest): description=( "Optional reasoning effort passed to xAI as " '`reasoning: {"effort": ...}`. Grok models default to "high" and ' - 'cannot disable reasoning. "xhigh" is only supported by grok-4.6. ' + 'cannot disable reasoning. "xhigh" is only supported by grok-4.7 ' + "and grok-4.6. " "For requests with a direct xAI key, the request is retried " "without reasoning when the model rejects the parameter." ), @@ -1055,7 +1064,7 @@ def prepare_object_detection_prompt( classes: List[str], **kwargs, ) -> dict: - """Build the percent-format detection request used by Grok 4.5/4.6. + """Build the percent-format detection request used by Grok 4.5/4.6/4.7. Args: base64_image: Base64-encoded PNG image. diff --git a/workflows/tests/unit_tests/core_steps/common/test_reasoning_contract.py b/workflows/tests/unit_tests/core_steps/common/test_reasoning_contract.py index 6f32662fdd..59ef54500a 100644 --- a/workflows/tests/unit_tests/core_steps/common/test_reasoning_contract.py +++ b/workflows/tests/unit_tests/core_steps/common/test_reasoning_contract.py @@ -13,6 +13,7 @@ from roboflow_workflows.core_steps.models.foundation.openai import v6 as openai_v6 from roboflow_workflows.core_steps.models.foundation.qwen_vlm import v3 as qwen_vlm_v3 from roboflow_workflows.core_steps.models.foundation.spacexai import v2 as spacexai_v2 +from roboflow_workflows.core_steps.models.foundation.spacexai import v3 as spacexai_v3 from roboflow_workflows.core_steps.models.foundation.zai_vlm import v1 as zai_vlm_v1 _LEVELS = {"model-a": ["low", "high"], "model-b": []} @@ -71,6 +72,12 @@ def test_validate_reasoning_level_rejects_model_without_levels(): spacexai_v2.MODEL_VERSION_METADATA, None, ), + "spacexai@v3": ( + spacexai_v3.MODEL_REASONING_LEVELS, + spacexai_v3.REASONING_EFFORT_VALUES, + spacexai_v3.MODEL_VERSION_METADATA, + None, + ), "meta_vlm@v2": ( meta_vlm_v2.MODEL_REASONING_LEVELS, meta_vlm_v2.REASONING_EFFORT_OPTIONS, @@ -141,6 +148,7 @@ def test_block_default_level_is_valid_for_every_model(block): "open_ai@v6": openai_v6.BlockManifest, "google_gemini@v5": gemini_v5.BlockManifest, "spacexai@v2": spacexai_v2.BlockManifest, + "spacexai@v3": spacexai_v3.BlockManifest, "meta_vlm@v2": meta_vlm_v2.BlockManifest, "qwen_vlm@v3": qwen_vlm_v3.BlockManifest, } @@ -154,7 +162,7 @@ def _manifest(block_type: str, **overrides): "task_type": "unconstrained", "prompt": "describe", } - if block_type == "spacexai@v2": + if block_type in {"spacexai@v2", "spacexai@v3"}: spec["api_key"] = "$inputs.xai_api_key" spec.update(overrides) return _MANIFESTS[block_type].model_validate(spec) @@ -166,6 +174,7 @@ def _manifest(block_type: str, **overrides): ("open_ai@v6", {"model_version": "$inputs.model", "reasoning_effort": "xhigh"}), ("open_ai@v6", {"model_version": "gpt-4o"}), ("qwen_vlm@v3", {"backend": "native"}), + ("spacexai@v3", {"model_version": "grok-4.7", "reasoning_effort": "xhigh"}), ], ) def test_manifest_accepts_edges_rejects_cannot_cover(block_type, overrides): @@ -194,6 +203,7 @@ def test_manifest_accepts_edges_rejects_cannot_cover(block_type, overrides): {"model_version": "gemini-2.5-pro", "thinking_level": "low"}, ), ("spacexai@v2", {"model_version": "grok-4.5", "reasoning_effort": "xhigh"}), + ("spacexai@v3", {"model_version": "grok-4.5", "reasoning_effort": "xhigh"}), ( "meta_vlm@v2", {"model_version": "Muse Glimmer", "reasoning_effort": "minimal"}, diff --git a/workflows/tests/unit_tests/core_steps/models/foundation/test_spacexai_v3.py b/workflows/tests/unit_tests/core_steps/models/foundation/test_spacexai_v3.py index 40e5bbd3fa..a4a2cd1bee 100644 --- a/workflows/tests/unit_tests/core_steps/models/foundation/test_spacexai_v3.py +++ b/workflows/tests/unit_tests/core_steps/models/foundation/test_spacexai_v3.py @@ -10,11 +10,13 @@ import numpy as np import pytest +from pydantic import ValidationError from roboflow_workflows.core_steps.models.foundation.spacexai.v3 import ( BlockManifest, SpaceXAIBlockV3, ) from roboflow_workflows.execution_engine.entities.base import WorkflowImageData +from roboflow_workflows.prototypes.block import third_party_model from tests.unit_tests.core_steps._vlm_prediction_readers import ( classification_top_class, @@ -96,6 +98,27 @@ def test_manifest_parses_new_type(): } +@pytest.mark.parametrize("reasoning_effort", [None, "low", "medium", "high", "xhigh"]) +def test_manifest_accepts_grok_4_7_with_every_reasoning_level(reasoning_effort): + manifest = _manifest(model_version="grok-4.7", reasoning_effort=reasoning_effort) + + assert manifest.model_version == "grok-4.7" + assert manifest.reasoning_effort == reasoning_effort + + +def test_manifest_discovers_grok_4_7_as_xai_dependent_resource(): + manifest = _manifest(model_version="grok-4.7") + + assert manifest.discover_dependent_resources() == [ + third_party_model(provider="xai", model_id="grok-4.7") + ] + + +def test_manifest_rejects_xhigh_for_grok_4_5(): + with pytest.raises(ValidationError, match="support"): + _manifest(model_version="grok-4.5", reasoning_effort="xhigh") + + def test_manifest_recommends_parser_only_for_structured_answering(): recommended = BlockManifest.model_fields["task_type"].json_schema_extra[ "recommended_parsers" From 5fbc2171f29e7cc887e91879975f40d5cb2b11e1 Mon Sep 17 00:00:00 2001 From: SkalskiP Date: Tue, 22 Sep 2026 11:34:44 +0200 Subject: [PATCH 2/6] Tighten Grok 4.7 wording and tests Drop v3 manifest tests that duplicated the reasoning contract suite or exercised a pass-through. Keep the single note on prompt reuse next to the model table instead of repeating it in four docstrings. Co-authored-by: Cursor --- workflows/CHANGELOG.md | 4 +--- .../models/foundation/spacexai/v3.py | 14 +++++------ .../models/foundation/test_spacexai_v3.py | 23 ------------------- 3 files changed, 7 insertions(+), 34 deletions(-) diff --git a/workflows/CHANGELOG.md b/workflows/CHANGELOG.md index d677ff5815..799afdc589 100644 --- a/workflows/CHANGELOG.md +++ b/workflows/CHANGELOG.md @@ -4,9 +4,7 @@ ### Added -- SpaceXAI block (`roboflow_core/spacexai@v3`): `grok-4.7` model option with `low` / `medium` / - `high` / `xhigh` reasoning effort. Object detection reuses the existing percent-of-image - `box_2d` prompt. +- SpaceXAI block (`spacexai@v3`): `grok-4.7` model option with `low`/`medium`/`high`/`xhigh` reasoning effort. Detection reuses the Grok 4.5/4.6 prompt. --- diff --git a/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py b/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py index 1a5ad045aa..59d4f6a460 100644 --- a/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py +++ b/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py @@ -3,8 +3,7 @@ Calls Grok vision models via xAI's OpenAI-compatible Responses API, either directly with a user-provided xAI key or through Roboflow's ``apiproxy/xai`` managed-key proxy. Object-detection prompting uses the percent-of-image -``box_2d`` contract validated in the vlm-exam benchmark for Grok 4.5/4.6; -Grok 4.7 shares the same prompt contract. +``box_2d`` contract validated in the vlm-exam benchmark for Grok 4.5/4.6. Same surface as ``spacexai@v2``, plus in-block decoding of the model answer: ``predictions``, ``error_status`` and ``inference_id`` outputs sit @@ -75,6 +74,7 @@ XAI_BASE_URL = "https://api.x.ai/v1" # grok-4.5 `xhigh` excluded: xAI silently downgrades it to `high`. +# grok-4.7 was not re-benchmarked; it reuses the 4.5/4.6 detection prompt. GROK_MODELS = [ { "id": "grok-4.7", @@ -108,8 +108,7 @@ # Grok grounds objects with `box_2d` percentages of image width and height # - the shared `xyxy_percent` contract, whose prompt wording is the -# vlm-exam template this block was benchmarked with for Grok 4.5/4.6 and -# reused unchanged for Grok 4.7. +# vlm-exam template this block was benchmarked with for Grok 4.5/4.6. DETECTION_BOX_FORMAT = "xyxy_percent" SUPPORTED_TASK_TYPES_LIST = [ @@ -156,7 +155,7 @@ Images for object detection are sent at original resolution as lossless PNG with `detail: "high"`, matching the vlm-exam benchmark setup for Grok 4.5/4.6. -Grok 4.7 uses the same detection prompt. +Grok 4.7 uses the same prompt and image handling. ## Version Differences @@ -301,8 +300,7 @@ class BlockManifest(WorkflowBlockManifest): description=( "Optional reasoning effort passed to xAI as " '`reasoning: {"effort": ...}`. Grok models default to "high" and ' - 'cannot disable reasoning. "xhigh" is only supported by grok-4.7 ' - "and grok-4.6. " + 'cannot disable reasoning. "xhigh" is not supported by grok-4.5. ' "For requests with a direct xAI key, the request is retried " "without reasoning when the model rejects the parameter." ), @@ -1064,7 +1062,7 @@ def prepare_object_detection_prompt( classes: List[str], **kwargs, ) -> dict: - """Build the percent-format detection request used by Grok 4.5/4.6/4.7. + """Build the percent-format detection request used by Grok 4.5/4.6. Args: base64_image: Base64-encoded PNG image. diff --git a/workflows/tests/unit_tests/core_steps/models/foundation/test_spacexai_v3.py b/workflows/tests/unit_tests/core_steps/models/foundation/test_spacexai_v3.py index a4a2cd1bee..40e5bbd3fa 100644 --- a/workflows/tests/unit_tests/core_steps/models/foundation/test_spacexai_v3.py +++ b/workflows/tests/unit_tests/core_steps/models/foundation/test_spacexai_v3.py @@ -10,13 +10,11 @@ import numpy as np import pytest -from pydantic import ValidationError from roboflow_workflows.core_steps.models.foundation.spacexai.v3 import ( BlockManifest, SpaceXAIBlockV3, ) from roboflow_workflows.execution_engine.entities.base import WorkflowImageData -from roboflow_workflows.prototypes.block import third_party_model from tests.unit_tests.core_steps._vlm_prediction_readers import ( classification_top_class, @@ -98,27 +96,6 @@ def test_manifest_parses_new_type(): } -@pytest.mark.parametrize("reasoning_effort", [None, "low", "medium", "high", "xhigh"]) -def test_manifest_accepts_grok_4_7_with_every_reasoning_level(reasoning_effort): - manifest = _manifest(model_version="grok-4.7", reasoning_effort=reasoning_effort) - - assert manifest.model_version == "grok-4.7" - assert manifest.reasoning_effort == reasoning_effort - - -def test_manifest_discovers_grok_4_7_as_xai_dependent_resource(): - manifest = _manifest(model_version="grok-4.7") - - assert manifest.discover_dependent_resources() == [ - third_party_model(provider="xai", model_id="grok-4.7") - ] - - -def test_manifest_rejects_xhigh_for_grok_4_5(): - with pytest.raises(ValidationError, match="support"): - _manifest(model_version="grok-4.5", reasoning_effort="xhigh") - - def test_manifest_recommends_parser_only_for_structured_answering(): recommended = BlockManifest.model_fields["task_type"].json_schema_extra[ "recommended_parsers" From 2f8d0f508fca0586c30ca72f0d46b3d73cef7ff6 Mon Sep 17 00:00:00 2001 From: SkalskiP Date: Tue, 22 Sep 2026 11:38:55 +0200 Subject: [PATCH 3/6] Clarify reasoning retry wording in SpaceXAI help text The retry drops the `reasoning` request parameter; the model still reasons at its default effort. "Retried without reasoning" read as if reasoning were switched off, contradicting the sentence before it. Co-authored-by: Cursor --- .../core_steps/models/foundation/spacexai/v3.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py b/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py index 59d4f6a460..bd4c118658 100644 --- a/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py +++ b/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py @@ -301,8 +301,9 @@ class BlockManifest(WorkflowBlockManifest): "Optional reasoning effort passed to xAI as " '`reasoning: {"effort": ...}`. Grok models default to "high" and ' 'cannot disable reasoning. "xhigh" is not supported by grok-4.5. ' - "For requests with a direct xAI key, the request is retried " - "without reasoning when the model rejects the parameter." + "With a direct xAI key, if the model rejects the `reasoning` " + "parameter the request is retried without it, so the model falls " + "back to its default effort." ), examples=["low", "high"], ) From 23e2f2160cf9d738d09b4b0f89c91df82707aa1b Mon Sep 17 00:00:00 2001 From: SkalskiP Date: Tue, 22 Sep 2026 12:46:12 +0200 Subject: [PATCH 4/6] Compress SpaceXAI detection PNGs under xAI's upload limit OpenCV's default PNG compression rejected the large drone frames in the detection benchmark with a 25MB invalid_image error. Level 9 is lossless and stays under that limit, which is how the benchmark's PIL encoder already gets those images through. Co-authored-by: Cursor --- workflows/CHANGELOG.md | 4 ++++ .../core_steps/models/foundation/spacexai/v3.py | 10 +++++++++- .../core_steps/models/foundation/test_spacexai_v3.py | 11 +++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/workflows/CHANGELOG.md b/workflows/CHANGELOG.md index 799afdc589..51b7875efd 100644 --- a/workflows/CHANGELOG.md +++ b/workflows/CHANGELOG.md @@ -6,6 +6,10 @@ - SpaceXAI block (`spacexai@v3`): `grok-4.7` model option with `low`/`medium`/`high`/`xhigh` reasoning effort. Detection reuses the Grok 4.5/4.6 prompt. +### Fixed + +- SpaceXAI object detection encodes PNG at compression level 9. OpenCV's default compression put large frames over xAI's 25MB upload limit. + --- ## `0.1.2` diff --git a/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py b/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py index bd4c118658..518e504db7 100644 --- a/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py +++ b/workflows/roboflow_workflows/core_steps/models/foundation/spacexai/v3.py @@ -571,7 +571,15 @@ def encode_image_for_task( def _encode_image_to_png_bytes(image: np.ndarray) -> bytes: - _, encoded_image = cv2.imencode(".png", image) + # OpenCV's default PNG compression (level 1) puts the large drone frames + # in the detection benchmark over xAI's 25MB upload limit, so those + # requests 400. Level 9 is still lossless and stays under the limit, + # matching the benchmark's PIL encoder. + _, encoded_image = cv2.imencode( + ".png", + image, + [cv2.IMWRITE_PNG_COMPRESSION, 9], + ) return encoded_image.tobytes() diff --git a/workflows/tests/unit_tests/core_steps/models/foundation/test_spacexai_v3.py b/workflows/tests/unit_tests/core_steps/models/foundation/test_spacexai_v3.py index 40e5bbd3fa..4d47cb1ea2 100644 --- a/workflows/tests/unit_tests/core_steps/models/foundation/test_spacexai_v3.py +++ b/workflows/tests/unit_tests/core_steps/models/foundation/test_spacexai_v3.py @@ -8,11 +8,13 @@ from unittest.mock import MagicMock, patch +import cv2 import numpy as np import pytest from roboflow_workflows.core_steps.models.foundation.spacexai.v3 import ( BlockManifest, SpaceXAIBlockV3, + _encode_image_to_png_bytes, ) from roboflow_workflows.execution_engine.entities.base import WorkflowImageData @@ -174,3 +176,12 @@ def test_run_reports_error_status_for_undecodable_detection_output(mock_promptin assert result[0]["predictions"] is None assert result[0]["error_status"] is True + + +def test_detection_png_uses_compression_that_fits_xai_upload_limit(): + image = np.random.default_rng(0).integers(0, 256, (128, 128, 3), dtype=np.uint8) + + encoded = _encode_image_to_png_bytes(image) + _, compressed = cv2.imencode(".png", image, [cv2.IMWRITE_PNG_COMPRESSION, 9]) + + assert encoded == compressed.tobytes() From 67c9e5aed2abab8d8b47db53c48bba54922db4e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20P=C4=99czek?= Date: Tue, 22 Sep 2026 15:04:18 +0200 Subject: [PATCH 5/6] Bump rf-workflows --- workflows/pyproject.toml | 2 +- workflows/uv.lock | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/workflows/pyproject.toml b/workflows/pyproject.toml index 52a2dad475..3ee330e190 100644 --- a/workflows/pyproject.toml +++ b/workflows/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "roboflow-workflows" -version = "0.1.2" +version = "0.1.2-post1" description = "Roboflow Workflows execution engine and block library" readme = "README.md" license = {file = "LICENSE"} diff --git a/workflows/uv.lock b/workflows/uv.lock index b5e1a8fae3..782a22631d 100644 --- a/workflows/uv.lock +++ b/workflows/uv.lock @@ -2430,6 +2430,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/36/54/0169bc772ec491108b62f644f8ecf1fe5d8ae5ebafde2ee2142210166903/pillow-12.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:04f01d28a6aaff387bf842a13be313df23ba0597a44f1a976c9feb3c6ff4711a", size = 7231786, upload-time = "2026-07-01T11:56:35.046Z" }, ] +[[package]] +name = "pkgconfig" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/52/fd/0adde075cd3bfecd557bc7d757e00e231d34d8a6edb4c8d1642759254c21/pkgconfig-1.6.0.tar.gz", hash = "sha256:4a5a6631ce937fafac457104a40d558785a658bbdca5c49b6295bc3fd651907f", size = 5691, upload-time = "2026-03-06T11:26:01.194Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/6f/f7ec07fba48f07c555cc4099481df644fbbc12067879072c17ac229f6556/pkgconfig-1.6.0-py3-none-any.whl", hash = "sha256:98e71754855e9563838d952a160eb577edabb57782e49853edb5381927e6bea1", size = 7086, upload-time = "2026-03-06T11:26:07.688Z" }, +] + [[package]] name = "platformdirs" version = "4.11.8" @@ -3060,6 +3069,7 @@ version = "2.2.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi" }, + { name = "pkgconfig" }, ] sdist = { url = "https://files.pythonhosted.org/packages/7b/88/f73dae807ec68b228fba72507105e3ba80a561dc0bade0004ce24fd118fc/pyvips-2.2.3.tar.gz", hash = "sha256:43bceced0db492654c93008246a58a508e0373ae1621116b87b322f2ac72212f", size = 56626, upload-time = "2024-04-28T11:19:58.158Z" } @@ -3401,7 +3411,7 @@ wheels = [ [[package]] name = "roboflow-workflows" -version = "0.1.2" +version = "0.1.2.post1" source = { editable = "." } dependencies = [ { name = "anthropic" }, From 9bbced2edda20b2f3b244f76ca302c4e5c88b440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20P=C4=99czek?= Date: Tue, 22 Sep 2026 15:09:32 +0200 Subject: [PATCH 6/6] Bump inference requirements and version --- inference/core/version.py | 2 +- requirements/requirements.workflows.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/inference/core/version.py b/inference/core/version.py index e91e20458e..436e6dde31 100644 --- a/inference/core/version.py +++ b/inference/core/version.py @@ -1,4 +1,4 @@ -__version__ = "1.6.2" +__version__ = "1.6.2-post1" if __name__ == "__main__": diff --git a/requirements/requirements.workflows.txt b/requirements/requirements.workflows.txt index 28b3ebbee9..0952d46fa7 100644 --- a/requirements/requirements.workflows.txt +++ b/requirements/requirements.workflows.txt @@ -1,2 +1,2 @@ # keep in sync with workflows/pyproject.toml version -roboflow-workflows[enterprise]==0.1.2 +roboflow-workflows[enterprise]==0.1.2.post1