Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ dependencies = [
"typer>=0.15.0",
"questionary>=2.0.0",
"cryptography>=44.0.0",
"pytest-asyncio>=1.4.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

2. uv.lock mismatches pytest-asyncio 📘 Rule violation § Compliance

pyproject.toml now requires pytest-asyncio>=1.4.0, but uv.lock pins pytest-asyncio to
1.3.0. This makes the lockfile inconsistent with declared dependencies and can cause
non-reproducible installs.
Agent Prompt
## Issue description
The dependency spec was updated, but the uv lockfile still pins an older incompatible version.

## Issue Context
`pyproject.toml` requires `pytest-asyncio>=1.4.0`, while `uv.lock` contains `pytest-asyncio` at `1.3.0`, which does not satisfy the new constraint.

## Fix Focus Areas
- pyproject.toml[60-64]
- uv.lock[3121-3133]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

]
Comment on lines 60 to 64

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Remediation recommended

3. Duplicate pytest-asyncio requirement 🐞 Bug ☼ Reliability

pyproject.toml adds pytest-asyncio to runtime dependencies even though it already exists under
the dev optional extra with a different version constraint, which can lead to inconsistent
dependency resolution and forces a test-focused dependency into normal installs.
Agent Prompt
### Issue description
`pytest-asyncio` is declared twice with different constraints: once as a runtime dependency and once as a `dev` extra. This creates inconsistent package metadata and can change what downstream users get when they install `windows-use` without the `dev` extra.

Additionally, the repo uses `uv` in CI (`uv sync --extra dev`), and `uv.lock` currently reflects only the `dev`-extra dependency metadata for `pytest-asyncio`, not a runtime dependency, so dependency metadata is inconsistent.

### Issue Context
- `pytest-asyncio` is typically a test dependency and is already declared in `[project.optional-dependencies].dev`.
- CI uses `uv sync --extra dev`, so the project is lockfile-driven for installs.

### Fix Focus Areas
- pyproject.toml[41-74]
- uv.lock[4425-4430]
- .github/workflows/ci.yml[30-39]

### Suggested fix
1. Remove `"pytest-asyncio>=1.4.0"` from `[project].dependencies` (keep it only in `[project.optional-dependencies].dev`), **or** if it truly is required at runtime, remove it from `dev` and keep a single consistent specifier.
2. Regenerate/update and commit `uv.lock` so it matches the chosen dependency layout (runtime vs dev extra) and version constraint(s).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


[project.scripts]
Expand Down
2 changes: 1 addition & 1 deletion windows_use/providers/mistral/llm.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from collections.abc import AsyncIterator, Iterator
from typing import Any, overload

from mistralai import Mistral
from mistralai.client import Mistral
from pydantic import BaseModel

from windows_use.messages import (
Expand Down
1 change: 1 addition & 0 deletions windows_use/providers/openai/llm.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ def __init__(
self.base_url = base_url or os.environ.get("OPENAI_BASE_URL")
self.temperature = temperature
self.extra_body = extra_body
self.reasoning_effort = reasoning_effort

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

1. llm.py outside windows_use/llms 📘 Rule violation ⌂ Architecture

LLM integration code was modified in windows_use/providers/.../llm.py, but the checklist requires
all LLM integration code to live under windows_use/llms. This breaks the required module boundary
for LLM client code and complicates auditing/maintenance.
Agent Prompt
## Issue description
LLM integration code (OpenAI/Mistral client usage) is implemented/modified outside the required `windows_use/llms` directory.

## Issue Context
This PR updates LLM provider implementations in `windows_use/providers/...`, but compliance requires LLM communication/orchestration code to be centralized under `windows_use/llms`.

## Fix Focus Areas
- windows_use/providers/openai/llm.py[75-75]
- windows_use/providers/mistral/llm.py[7-7]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


self.client = OpenAI(
api_key=self.api_key,
Expand Down