From a691b86f376714e26df804628075b9e55b79f742 Mon Sep 17 00:00:00 2001 From: shivashanmugam Date: Tue, 23 Jun 2026 00:23:42 +0530 Subject: [PATCH 1/4] python 3.13 issue fix --- .github/workflows/test.yml | 29 +++++++++++++++++++++++++++++ pyproject.toml | 3 +++ requirements.txt | 15 ++++++++------- 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2a3c6078..cd2db08e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,6 +9,35 @@ on: # Allow manual triggering jobs: + install-check: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.11", "3.12", "3.13", "3.14"] + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install system dependencies + run: | + sudo apt-get update + sudo apt-get install -y build-essential + + - name: Install package and dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + pip install -e . + + - name: Verify import + run: python -c "import microbots; print('microbots imported on Python', __import__('sys').version)" + test: runs-on: ubuntu-latest permissions: diff --git a/pyproject.toml b/pyproject.toml index e5baf528..198b1f1f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,6 +18,9 @@ classifiers = [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] requires-python = ">=3.11" diff --git a/requirements.txt b/requirements.txt index 4bf03b51..3aacd565 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ aiohappyeyeballs==2.6.1 -aiohttp==3.12.15 +aiohttp==3.14.1 aiosignal==1.4.0 annotated-types==0.7.0 anthropic==0.75.0 @@ -26,12 +26,13 @@ httpx==0.28.1 huggingface_hub==1.3.2 idna==3.10 iniconfig==2.1.0 -jiter==0.11.0 +jiter==0.15.0 markdown-it-py==4.0.0 mdurl==0.1.2 multidict==6.6.4 multiprocess==0.70.18 -numpy==1.26.4 +numpy==2.2.6; python_version < "3.14" +numpy==2.5.0; python_version >= "3.14" openai==1.107.3 packaging==25.0 pandas==3.0.0 @@ -40,15 +41,15 @@ pluggy==1.6.0 propcache==0.3.2 ptyprocess==0.7.0 pyarrow==23.0.0 -pydantic==2.11.9 -pydantic_core==2.33.2 +pydantic==2.12.4 +pydantic_core==2.41.5 Pygments==2.19.2 pytest==8.4.2 pytest-cov==7.0.0 python-dateutil==2.9.0.post0 python-dotenv==1.1.1 python-multipart==0.0.20 -PyYAML==6.0.2 +PyYAML==6.0.3 requests==2.32.5 rich==14.1.0 shellingham==1.5.4 @@ -58,7 +59,7 @@ starlette==0.47.3 swe-rex==1.4.0 tqdm==4.67.1 typer-slim==0.21.1 -typing-inspection==0.4.1 +typing-inspection==0.4.2 typing_extensions==4.15.0 urllib3==2.5.0 uvicorn==0.35.0 From 61c899fd41a4f7796d75ec33da483177afbbb6ed Mon Sep 17 00:00:00 2001 From: shivashanmugam Date: Tue, 23 Jun 2026 01:22:25 +0530 Subject: [PATCH 2/4] fix windows mount issue --- src/microbots/extras/mount.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/microbots/extras/mount.py b/src/microbots/extras/mount.py index a36014b2..7131bb2c 100644 --- a/src/microbots/extras/mount.py +++ b/src/microbots/extras/mount.py @@ -1,9 +1,9 @@ from dataclasses import dataclass, field from enum import StrEnum -from pathlib import Path +from pathlib import PurePosixPath from microbots.constants import PermissionLabels, PermissionMapping -from microbots.utils.path import PathInfo, get_path_info, ends_with_separator +from microbots.utils.path import PathInfo, ends_with_separator, get_path_info class MountType(StrEnum): @@ -57,7 +57,12 @@ def __post_init__(self): self.permission_key = PermissionMapping.MAPPING.get(self.permission) self.host_path_info = get_path_info(self.host_path) - sandbox_path = Path(self.sandbox_path) + # The sandbox is always a POSIX (Linux) container, so the sandbox + # path must be interpreted as a POSIX path regardless of the host OS. + # Using pathlib.Path here would resolve to WindowsPath on Windows, + # which incorrectly reports POSIX absolute paths like "/var/log" as + # relative (Windows requires a drive letter for an absolute path). + sandbox_path = PurePosixPath(self.sandbox_path) # Validate that sandbox_path is absolute if not sandbox_path.is_absolute(): From abdf1acd968eb6aea329b28691da82f39082617e Mon Sep 17 00:00:00 2001 From: shivashanmugam Date: Tue, 23 Jun 2026 01:24:37 +0530 Subject: [PATCH 3/4] Revert "fix windows mount issue" This reverts commit 61c899fd41a4f7796d75ec33da483177afbbb6ed. --- src/microbots/extras/mount.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/microbots/extras/mount.py b/src/microbots/extras/mount.py index 7131bb2c..a36014b2 100644 --- a/src/microbots/extras/mount.py +++ b/src/microbots/extras/mount.py @@ -1,9 +1,9 @@ from dataclasses import dataclass, field from enum import StrEnum -from pathlib import PurePosixPath +from pathlib import Path from microbots.constants import PermissionLabels, PermissionMapping -from microbots.utils.path import PathInfo, ends_with_separator, get_path_info +from microbots.utils.path import PathInfo, get_path_info, ends_with_separator class MountType(StrEnum): @@ -57,12 +57,7 @@ def __post_init__(self): self.permission_key = PermissionMapping.MAPPING.get(self.permission) self.host_path_info = get_path_info(self.host_path) - # The sandbox is always a POSIX (Linux) container, so the sandbox - # path must be interpreted as a POSIX path regardless of the host OS. - # Using pathlib.Path here would resolve to WindowsPath on Windows, - # which incorrectly reports POSIX absolute paths like "/var/log" as - # relative (Windows requires a drive letter for an absolute path). - sandbox_path = PurePosixPath(self.sandbox_path) + sandbox_path = Path(self.sandbox_path) # Validate that sandbox_path is absolute if not sandbox_path.is_absolute(): From 9e53d02d0da3a45bb7fc615191506381ee8e7c0a Mon Sep 17 00:00:00 2001 From: Siva Kannan Date: Fri, 26 Jun 2026 16:13:00 +0530 Subject: [PATCH 4/4] Potential fix for pull request finding Properly mimics real user system installation Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/workflows/test.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index da631ad4..dbf9dad8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,12 +29,10 @@ jobs: sudo apt-get update sudo apt-get install -y build-essential - - name: Install package and dependencies + - name: Install package (dependency resolution via metadata) run: | python -m pip install --upgrade pip - pip install -r requirements.txt - pip install -e . - + python -m pip install . - name: Verify import run: python -c "import microbots; print('microbots imported on Python', __import__('sys').version)"