From 45413ce8158a848c4f6fc9f9d83a861b4375a0cc Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 24 Apr 2025 07:18:35 -0700 Subject: [PATCH 01/11] copy --- aider/website/docs/troubleshooting/models-and-keys.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/aider/website/docs/troubleshooting/models-and-keys.md b/aider/website/docs/troubleshooting/models-and-keys.md index 06fbc9722..7b80ec3e4 100644 --- a/aider/website/docs/troubleshooting/models-and-keys.md +++ b/aider/website/docs/troubleshooting/models-and-keys.md @@ -17,6 +17,8 @@ First, aider will check which [keys you have provided via the environment, config files, or command line arguments](https://aider.chat/docs/config/api-keys.html). Based on the available keys, aider will select the best model to use. +## OpenRouter + If you have not provided any keys, aider will offer to help you connect to [OpenRouter](http://openrouter.ai) which provides both free and paid access to most popular LLMs. From 3bf20d4f7a987f35659f4c377e2c4f9ede5d3959 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 24 Apr 2025 19:51:14 -0700 Subject: [PATCH 02/11] feat: Set gemini 2.5 pro models to overeager: true --- aider/resources/model-settings.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/aider/resources/model-settings.yml b/aider/resources/model-settings.yml index 43ec1438d..e1acd34d2 100644 --- a/aider/resources/model-settings.yml +++ b/aider/resources/model-settings.yml @@ -958,6 +958,7 @@ use_system_prompt: false - name: gemini/gemini-2.5-pro-preview-03-25 + overeager: true edit_format: diff-fenced use_repo_map: true weak_model_name: gemini/gemini-2.0-flash @@ -965,6 +966,7 @@ - name: gemini/gemini-2.5-pro-exp-03-25 edit_format: diff-fenced use_repo_map: true + overeager: true weak_model_name: gemini/gemini-2.5-flash-preview-04-17 - name: openrouter/google/gemini-2.5-pro-exp-03-25:free From 25a303935cd928098d1b399878c6458cabc20015 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Thu, 24 Apr 2025 19:51:35 -0700 Subject: [PATCH 03/11] fix: Add overeager setting to Gemini 2.5 Pro models in model-settings.yml --- aider/resources/model-settings.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/aider/resources/model-settings.yml b/aider/resources/model-settings.yml index e1acd34d2..273e77621 100644 --- a/aider/resources/model-settings.yml +++ b/aider/resources/model-settings.yml @@ -971,6 +971,7 @@ - name: openrouter/google/gemini-2.5-pro-exp-03-25:free edit_format: diff-fenced + overeager: true use_repo_map: true weak_model_name: openrouter/google/gemini-2.0-flash-exp:free @@ -978,12 +979,14 @@ edit_format: diff-fenced use_repo_map: true weak_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + overeager: true editor_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 - name: vertex_ai/gemini-2.5-pro-preview-03-25 edit_format: diff-fenced use_repo_map: true weak_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 + overeager: true editor_model_name: vertex_ai-language-models/gemini-2.5-flash-preview-04-17 - name: openrouter/openrouter/quasar-alpha From 22f140ac05d6fa8b1f0757d521851492925d086a Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 25 Apr 2025 07:54:31 -0700 Subject: [PATCH 04/11] feat: Add common file patterns to default gitignore spec --- aider/watch.py | 1 + 1 file changed, 1 insertion(+) diff --git a/aider/watch.py b/aider/watch.py index e7b115730..a575b371f 100644 --- a/aider/watch.py +++ b/aider/watch.py @@ -34,6 +34,7 @@ def load_gitignores(gitignore_paths: list[Path]) -> Optional[PathSpec]: "__pycache__/", # Python cache dir ".DS_Store", # macOS metadata "Thumbs.db", # Windows thumbnail cache + "*.svg", # IDE files ".idea/", # JetBrains IDEs ".vscode/", # VS Code From e74339453789868a1cd6bf74e8d1e4b44e79b32f Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Fri, 25 Apr 2025 07:54:32 -0700 Subject: [PATCH 05/11] feat: Skip scanning files larger than 1MB for AI comments --- aider/watch.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/aider/watch.py b/aider/watch.py index a575b371f..fe0887300 100644 --- a/aider/watch.py +++ b/aider/watch.py @@ -104,6 +104,10 @@ class FileWatcher: if self.verbose: dump("ok", rel_path) + # Check file size before reading content + if path_abs.is_file() and path_abs.stat().st_size > 1 * 1024 * 1024: # 1MB limit + return False + # Check if file contains AI markers try: comments, _, _ = self.get_ai_comments(str(path_abs)) From df1a0c5b8d4411ca78034259353d4a899f16c9f5 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Fri, 25 Apr 2025 07:54:35 -0700 Subject: [PATCH 06/11] style: Apply linter to aider/watch.py --- aider/watch.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/aider/watch.py b/aider/watch.py index fe0887300..8fc521c6d 100644 --- a/aider/watch.py +++ b/aider/watch.py @@ -65,7 +65,9 @@ class FileWatcher: """Watches source files for changes and AI comments""" # Compiled regex pattern for AI comments - ai_comment_pattern = re.compile(r"(?:#|//|--|;+) *(ai\b.*|ai\b.*|.*\bai[?!]?) *$", re.IGNORECASE) + ai_comment_pattern = re.compile( + r"(?:#|//|--|;+) *(ai\b.*|ai\b.*|.*\bai[?!]?) *$", re.IGNORECASE + ) def __init__(self, coder, gitignores=None, verbose=False, analytics=None, root=None): self.coder = coder From 591d294052508d05310c054edb17dcd3cf607c71 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 25 Apr 2025 07:58:51 -0700 Subject: [PATCH 07/11] feat: Print changed file path and check before reading content --- aider/watch.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/aider/watch.py b/aider/watch.py index 8fc521c6d..8f84f6006 100644 --- a/aider/watch.py +++ b/aider/watch.py @@ -96,20 +96,20 @@ class FileWatcher: rel_path = path_abs.relative_to(self.root) if self.verbose: - dump(rel_path) + print("Changed", rel_path) if self.gitignore_spec and self.gitignore_spec.match_file( rel_path.as_posix() + ("/" if path_abs.is_dir() else "") ): return False - if self.verbose: - dump("ok", rel_path) - # Check file size before reading content if path_abs.is_file() and path_abs.stat().st_size > 1 * 1024 * 1024: # 1MB limit return False + if self.verbose: + print("Checking", rel_path) + # Check if file contains AI markers try: comments, _, _ = self.get_ai_comments(str(path_abs)) From 07759813ed0efb0d70eaf2cc43a64133734d90f4 Mon Sep 17 00:00:00 2001 From: Kay Gosho Date: Sun, 27 Apr 2025 16:06:32 +0900 Subject: [PATCH 08/11] fix: add suffix "md" when opening editor in InputOutput class --- aider/io.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aider/io.py b/aider/io.py index 08c03ef53..90f581aab 100644 --- a/aider/io.py +++ b/aider/io.py @@ -595,7 +595,7 @@ class InputOutput: current_text = buffer.text # Open the editor with the current text - edited_text = pipe_editor(input_data=current_text) + edited_text = pipe_editor(input_data=current_text, suffix="md") # Replace the buffer with the edited text, strip any trailing newlines buffer.text = edited_text.rstrip("\n") From 9351f3793511d9f1497b5297a5240f177f4bd9ad Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 28 Apr 2025 07:53:20 -0700 Subject: [PATCH 09/11] add google-generativeai, bump deps --- requirements.txt | 124 ++++++++++++++++++++--- requirements/common-constraints.txt | 108 +++++++++++++------- requirements/requirements-browser.txt | 10 +- requirements/requirements-dev.txt | 30 +++--- requirements/requirements-help.txt | 28 ++--- requirements/requirements-playwright.txt | 2 +- requirements/requirements.in | 1 + 7 files changed, 213 insertions(+), 90 deletions(-) diff --git a/requirements.txt b/requirements.txt index 44dbe2956..d8efa792e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ aiohappyeyeballs==2.6.1 # via # -c requirements/common-constraints.txt # aiohttp -aiohttp==3.11.16 +aiohttp==3.11.18 # via # -c requirements/common-constraints.txt # litellm @@ -33,11 +33,15 @@ backoff==2.2.1 # -c requirements/common-constraints.txt # -r requirements/requirements.in # posthog -beautifulsoup4==4.13.3 +beautifulsoup4==4.13.4 # via # -c requirements/common-constraints.txt # -r requirements/requirements.in -certifi==2025.1.31 +cachetools==5.5.2 + # via + # -c requirements/common-constraints.txt + # google-auth +certifi==2025.4.26 # via # -c requirements/common-constraints.txt # httpcore @@ -81,7 +85,7 @@ flake8==7.2.0 # via # -c requirements/common-constraints.txt # -r requirements/requirements.in -frozenlist==1.5.0 +frozenlist==1.6.0 # via # -c requirements/common-constraints.txt # aiohttp @@ -98,18 +102,67 @@ gitpython==3.1.44 # via # -c requirements/common-constraints.txt # -r requirements/requirements.in +google-ai-generativelanguage==0.6.15 + # via + # -c requirements/common-constraints.txt + # google-generativeai +google-api-core[grpc]==2.24.2 + # via + # -c requirements/common-constraints.txt + # google-ai-generativelanguage + # google-api-python-client + # google-generativeai +google-api-python-client==2.168.0 + # via + # -c requirements/common-constraints.txt + # google-generativeai +google-auth==2.39.0 + # via + # -c requirements/common-constraints.txt + # google-ai-generativelanguage + # google-api-core + # google-api-python-client + # google-auth-httplib2 + # google-generativeai +google-auth-httplib2==0.2.0 + # via + # -c requirements/common-constraints.txt + # google-api-python-client +google-generativeai==0.8.5 + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in +googleapis-common-protos==1.70.0 + # via + # -c requirements/common-constraints.txt + # google-api-core + # grpcio-status grep-ast==0.8.1 # via # -c requirements/common-constraints.txt # -r requirements/requirements.in -h11==0.14.0 +grpcio==1.71.0 + # via + # -c requirements/common-constraints.txt + # google-api-core + # grpcio-status +grpcio-status==1.71.0 + # via + # -c requirements/common-constraints.txt + # google-api-core +h11==0.16.0 # via # -c requirements/common-constraints.txt # httpcore -httpcore==1.0.8 +httpcore==1.0.9 # via # -c requirements/common-constraints.txt # httpx +httplib2==0.22.0 + # via + # -c requirements/common-constraints.txt + # google-api-python-client + # google-auth-httplib2 httpx==0.28.1 # via # -c requirements/common-constraints.txt @@ -152,11 +205,11 @@ jsonschema==4.23.0 # -c requirements/common-constraints.txt # -r requirements/requirements.in # litellm -jsonschema-specifications==2024.10.1 +jsonschema-specifications==2025.4.1 # via # -c requirements/common-constraints.txt # jsonschema -litellm==1.65.7 +litellm==1.67.4.post1 # via # -c requirements/common-constraints.txt # -r requirements/requirements.in @@ -198,7 +251,7 @@ numpy==1.26.4 # -c requirements/common-constraints.txt # scipy # soundfile -openai==1.73.0 +openai==1.76.0 # via # -c requirements/common-constraints.txt # litellm @@ -216,19 +269,19 @@ pexpect==4.9.0 # via # -c requirements/common-constraints.txt # -r requirements/requirements.in -pillow==11.1.0 +pillow==11.2.1 # via # -c requirements/common-constraints.txt # -r requirements/requirements.in -pip==25.0.1 +pip==25.1 # via # -c requirements/common-constraints.txt # -r requirements/requirements.in -posthog==3.24.1 +posthog==4.0.0 # via # -c requirements/common-constraints.txt # -r requirements/requirements.in -prompt-toolkit==3.0.50 +prompt-toolkit==3.0.51 # via # -c requirements/common-constraints.txt # -r requirements/requirements.in @@ -237,6 +290,20 @@ propcache==0.3.1 # -c requirements/common-constraints.txt # aiohttp # yarl +proto-plus==1.26.1 + # via + # -c requirements/common-constraints.txt + # google-ai-generativelanguage + # google-api-core +protobuf==5.29.4 + # via + # -c requirements/common-constraints.txt + # google-ai-generativelanguage + # google-api-core + # google-generativeai + # googleapis-common-protos + # grpcio-status + # proto-plus psutil==7.0.0 # via # -c requirements/common-constraints.txt @@ -245,6 +312,15 @@ ptyprocess==0.7.0 # via # -c requirements/common-constraints.txt # pexpect +pyasn1==0.6.1 + # via + # -c requirements/common-constraints.txt + # pyasn1-modules + # rsa +pyasn1-modules==0.4.2 + # via + # -c requirements/common-constraints.txt + # google-auth pycodestyle==2.13.0 # via # -c requirements/common-constraints.txt @@ -256,6 +332,7 @@ pycparser==2.22 pydantic==2.11.3 # via # -c requirements/common-constraints.txt + # google-generativeai # litellm # openai pydantic-core==2.33.1 @@ -278,6 +355,10 @@ pypandoc==1.15 # via # -c requirements/common-constraints.txt # -r requirements/requirements.in +pyparsing==3.2.3 + # via + # -c requirements/common-constraints.txt + # httplib2 pyperclip==1.9.0 # via # -c requirements/common-constraints.txt @@ -307,6 +388,7 @@ regex==2024.11.6 requests==2.32.3 # via # -c requirements/common-constraints.txt + # google-api-core # huggingface-hub # mixpanel # posthog @@ -320,6 +402,10 @@ rpds-py==0.24.0 # -c requirements/common-constraints.txt # jsonschema # referencing +rsa==4.9.1 + # via + # -c requirements/common-constraints.txt + # google-auth scipy==1.13.1 # via # -c requirements/common-constraints.txt @@ -351,7 +437,7 @@ soundfile==0.13.1 # via # -c requirements/common-constraints.txt # -r requirements/requirements.in -soupsieve==2.6 +soupsieve==2.7 # via # -c requirements/common-constraints.txt # beautifulsoup4 @@ -366,6 +452,7 @@ tokenizers==0.21.1 tqdm==4.67.1 # via # -c requirements/common-constraints.txt + # google-generativeai # huggingface-hub # openai # via @@ -379,7 +466,7 @@ tree-sitter-embedded-template==0.23.2 # via # -c requirements/common-constraints.txt # tree-sitter-language-pack -tree-sitter-language-pack==0.7.1 +tree-sitter-language-pack==0.7.2 # via # -c requirements/common-constraints.txt # grep-ast @@ -392,6 +479,7 @@ typing-extensions==4.13.2 # -c requirements/common-constraints.txt # anyio # beautifulsoup4 + # google-generativeai # huggingface-hub # openai # pydantic @@ -402,6 +490,10 @@ typing-inspection==0.4.0 # via # -c requirements/common-constraints.txt # pydantic +uritemplate==4.1.1 + # via + # -c requirements/common-constraints.txt + # google-api-python-client urllib3==2.4.0 # via # -c requirements/common-constraints.txt @@ -415,7 +507,7 @@ wcwidth==0.2.13 # via # -c requirements/common-constraints.txt # prompt-toolkit -yarl==1.19.0 +yarl==1.20.0 # via # -c requirements/common-constraints.txt # aiohttp diff --git a/requirements/common-constraints.txt b/requirements/common-constraints.txt index 7061d872f..dcaa773a3 100644 --- a/requirements/common-constraints.txt +++ b/requirements/common-constraints.txt @@ -2,7 +2,7 @@ # uv pip compile --no-strip-extras --output-file=requirements/common-constraints.txt requirements/requirements.in requirements/requirements-browser.in requirements/requirements-dev.in requirements/requirements-help.in requirements/requirements-playwright.in aiohappyeyeballs==2.6.1 # via aiohttp -aiohttp==3.11.16 +aiohttp==3.11.18 # via # huggingface-hub # litellm @@ -27,9 +27,9 @@ backoff==2.2.1 # via # -r requirements/requirements.in # posthog -banks==2.1.1 +banks==2.1.2 # via llama-index-core -beautifulsoup4==4.13.3 +beautifulsoup4==4.13.4 # via -r requirements/requirements.in blinker==1.9.0 # via streamlit @@ -39,7 +39,7 @@ cachetools==5.5.2 # via # google-auth # streamlit -certifi==2025.1.31 +certifi==2025.4.26 # via # httpcore # httpx @@ -67,7 +67,7 @@ colorama==0.4.6 # via griffe configargparse==1.7 # via -r requirements/requirements.in -contourpy==1.3.1 +contourpy==1.3.2 # via matplotlib cycler==0.12.1 # via matplotlib @@ -79,7 +79,7 @@ deprecated==1.2.18 # llama-index-core diff-match-patch==20241021 # via -r requirements/requirements.in -dill==0.3.9 +dill==0.4.0 # via # multiprocess # pathos @@ -105,7 +105,7 @@ flake8==7.2.0 # via -r requirements/requirements.in fonttools==4.57.0 # via matplotlib -frozenlist==1.5.0 +frozenlist==1.6.0 # via # aiohttp # aiosignal @@ -120,34 +120,49 @@ gitpython==3.1.44 # via # -r requirements/requirements.in # streamlit +google-ai-generativelanguage==0.6.15 + # via google-generativeai google-api-core[grpc]==2.24.2 # via + # google-ai-generativelanguage + # google-api-python-client # google-cloud-bigquery # google-cloud-core -google-auth==2.38.0 + # google-generativeai +google-api-python-client==2.168.0 + # via google-generativeai +google-auth==2.39.0 # via + # google-ai-generativelanguage # google-api-core + # google-api-python-client + # google-auth-httplib2 # google-cloud-bigquery # google-cloud-core + # google-generativeai +google-auth-httplib2==0.2.0 + # via google-api-python-client google-cloud-bigquery==3.31.0 # via -r requirements/requirements-dev.in google-cloud-core==2.4.3 # via google-cloud-bigquery google-crc32c==1.7.1 # via google-resumable-media +google-generativeai==0.8.5 + # via -r requirements/requirements.in google-resumable-media==2.7.2 # via google-cloud-bigquery -googleapis-common-protos==1.69.2 +googleapis-common-protos==1.70.0 # via # google-api-core # grpcio-status -greenlet==3.1.1 +greenlet==3.2.1 # via # playwright # sqlalchemy grep-ast==0.8.1 # via -r requirements/requirements.in -griffe==1.7.2 +griffe==1.7.3 # via banks grpcio==1.71.0 # via @@ -155,10 +170,14 @@ grpcio==1.71.0 # grpcio-status grpcio-status==1.71.0 # via google-api-core -h11==0.14.0 +h11==0.16.0 # via httpcore -httpcore==1.0.8 +httpcore==1.0.9 # via httpx +httplib2==0.22.0 + # via + # google-api-python-client + # google-auth-httplib2 httpx==0.28.1 # via # litellm @@ -170,7 +189,7 @@ huggingface-hub[inference]==0.30.2 # sentence-transformers # tokenizers # transformers -identify==2.6.9 +identify==2.6.10 # via pre-commit idna==3.10 # via @@ -208,11 +227,11 @@ jsonschema==4.23.0 # -r requirements/requirements.in # altair # litellm -jsonschema-specifications==2024.10.1 +jsonschema-specifications==2025.4.1 # via jsonschema kiwisolver==1.4.8 # via matplotlib -litellm==1.65.7 +litellm==1.67.4.post1 # via -r requirements/requirements.in llama-index-core==0.12.26 # via @@ -244,11 +263,11 @@ multidict==6.4.3 # via # aiohttp # yarl -multiprocess==0.70.17 +multiprocess==0.70.18 # via pathos -mypy-extensions==1.0.0 +mypy-extensions==1.1.0 # via typing-inspect -narwhals==1.34.1 +narwhals==1.37.0 # via altair nest-asyncio==1.6.0 # via llama-index-core @@ -274,7 +293,7 @@ numpy==1.26.4 # soundfile # streamlit # transformers -openai==1.73.0 +openai==1.76.0 # via litellm packaging==24.2 # via @@ -292,7 +311,7 @@ pandas==2.2.3 # via # -r requirements/requirements-dev.in # streamlit -pathos==0.3.3 +pathos==0.3.4 # via lox pathspec==0.12.1 # via @@ -300,14 +319,14 @@ pathspec==0.12.1 # grep-ast pexpect==4.9.0 # via -r requirements/requirements.in -pillow==11.1.0 +pillow==11.2.1 # via # -r requirements/requirements.in # llama-index-core # matplotlib # sentence-transformers # streamlit -pip==25.0.1 +pip==25.1 # via # -r requirements/requirements.in # pip-tools @@ -321,25 +340,29 @@ playwright==1.51.0 # via -r requirements/requirements-playwright.in pluggy==1.5.0 # via pytest -posthog==3.24.1 +posthog==4.0.0 # via -r requirements/requirements.in -pox==0.3.5 +pox==0.3.6 # via pathos -ppft==1.7.6.9 +ppft==1.7.7 # via pathos pre-commit==4.2.0 # via -r requirements/requirements-dev.in -prompt-toolkit==3.0.50 +prompt-toolkit==3.0.51 # via -r requirements/requirements.in propcache==0.3.1 # via # aiohttp # yarl proto-plus==1.26.1 - # via google-api-core + # via + # google-ai-generativelanguage + # google-api-core protobuf==5.29.4 # via + # google-ai-generativelanguage # google-api-core + # google-generativeai # googleapis-common-protos # grpcio-status # proto-plus @@ -348,7 +371,7 @@ psutil==7.0.0 # via -r requirements/requirements.in ptyprocess==0.7.0 # via pexpect -pyarrow==19.0.1 +pyarrow==20.0.0 # via streamlit pyasn1==0.6.1 # via @@ -363,6 +386,7 @@ pycparser==2.22 pydantic==2.11.3 # via # banks + # google-generativeai # litellm # llama-index-core # openai @@ -381,7 +405,9 @@ pygments==2.19.1 pypandoc==1.15 # via -r requirements/requirements.in pyparsing==3.2.3 - # via matplotlib + # via + # httplib2 + # matplotlib pyperclip==1.9.0 # via -r requirements/requirements.in pyproject-hooks==1.2.0 @@ -439,7 +465,7 @@ rpds-py==0.24.0 # via # jsonschema # referencing -rsa==4.9 +rsa==4.9.1 # via google-auth safetensors==0.5.3 # via transformers @@ -452,9 +478,9 @@ scipy==1.13.1 # sentence-transformers semver==3.0.4 # via -r requirements/requirements-dev.in -sentence-transformers==4.0.2 +sentence-transformers==4.1.0 # via llama-index-embeddings-huggingface -setuptools==78.1.0 +setuptools==80.0.0 # via pip-tools shellingham==1.5.4 # via typer @@ -475,13 +501,13 @@ sounddevice==0.5.1 # via -r requirements/requirements.in soundfile==0.13.1 # via -r requirements/requirements.in -soupsieve==2.6 +soupsieve==2.7 # via beautifulsoup4 sqlalchemy[asyncio]==2.0.40 # via llama-index-core streamlit==1.44.1 # via -r requirements/requirements-browser.in -sympy==1.13.3 +sympy==1.14.0 # via torch tenacity==9.1.2 # via @@ -507,13 +533,14 @@ tornado==6.4.2 # via streamlit tqdm==4.67.1 # via + # google-generativeai # huggingface-hub # llama-index-core # nltk # openai # sentence-transformers # transformers -transformers==4.51.2 +transformers==4.51.3 # via sentence-transformers tree-sitter==0.24.0 # via tree-sitter-language-pack @@ -521,7 +548,7 @@ tree-sitter-c-sharp==0.23.1 # via tree-sitter-language-pack tree-sitter-embedded-template==0.23.2 # via tree-sitter-language-pack -tree-sitter-language-pack==0.7.1 +tree-sitter-language-pack==0.7.2 # via grep-ast tree-sitter-yaml==0.7.0 # via tree-sitter-language-pack @@ -532,6 +559,7 @@ typing-extensions==4.13.2 # altair # anyio # beautifulsoup4 + # google-generativeai # huggingface-hub # llama-index-core # openai @@ -554,11 +582,13 @@ typing-inspection==0.4.0 # via pydantic tzdata==2025.2 # via pandas +uritemplate==4.1.1 + # via google-api-python-client urllib3==2.4.0 # via # mixpanel # requests -uv==0.6.14 +uv==0.6.17 # via -r requirements/requirements-dev.in virtualenv==20.30.0 # via pre-commit @@ -572,7 +602,7 @@ wrapt==1.17.2 # via # deprecated # llama-index-core -yarl==1.19.0 +yarl==1.20.0 # via aiohttp zipp==3.21.0 # via importlib-metadata diff --git a/requirements/requirements-browser.txt b/requirements/requirements-browser.txt index 2174b975a..2108cc2f8 100644 --- a/requirements/requirements-browser.txt +++ b/requirements/requirements-browser.txt @@ -17,7 +17,7 @@ cachetools==5.5.2 # via # -c requirements/common-constraints.txt # streamlit -certifi==2025.1.31 +certifi==2025.4.26 # via # -c requirements/common-constraints.txt # requests @@ -50,7 +50,7 @@ jsonschema==4.23.0 # via # -c requirements/common-constraints.txt # altair -jsonschema-specifications==2024.10.1 +jsonschema-specifications==2025.4.1 # via # -c requirements/common-constraints.txt # jsonschema @@ -58,7 +58,7 @@ markupsafe==3.0.2 # via # -c requirements/common-constraints.txt # jinja2 -narwhals==1.34.1 +narwhals==1.37.0 # via # -c requirements/common-constraints.txt # altair @@ -77,7 +77,7 @@ pandas==2.2.3 # via # -c requirements/common-constraints.txt # streamlit -pillow==11.1.0 +pillow==11.2.1 # via # -c requirements/common-constraints.txt # streamlit @@ -85,7 +85,7 @@ protobuf==5.29.4 # via # -c requirements/common-constraints.txt # streamlit -pyarrow==19.0.1 +pyarrow==20.0.0 # via # -c requirements/common-constraints.txt # streamlit diff --git a/requirements/requirements-dev.txt b/requirements/requirements-dev.txt index 1ee5e482d..f34d35c97 100644 --- a/requirements/requirements-dev.txt +++ b/requirements/requirements-dev.txt @@ -8,7 +8,7 @@ cachetools==5.5.2 # via # -c requirements/common-constraints.txt # google-auth -certifi==2025.1.31 +certifi==2025.4.26 # via # -c requirements/common-constraints.txt # requests @@ -33,7 +33,7 @@ cogapp==3.4.1 # via # -c requirements/common-constraints.txt # -r requirements/requirements-dev.in -contourpy==1.3.1 +contourpy==1.3.2 # via # -c requirements/common-constraints.txt # matplotlib @@ -41,7 +41,7 @@ cycler==0.12.1 # via # -c requirements/common-constraints.txt # matplotlib -dill==0.3.9 +dill==0.4.0 # via # -c requirements/common-constraints.txt # multiprocess @@ -63,7 +63,7 @@ google-api-core[grpc]==2.24.2 # -c requirements/common-constraints.txt # google-cloud-bigquery # google-cloud-core -google-auth==2.38.0 +google-auth==2.39.0 # via # -c requirements/common-constraints.txt # google-api-core @@ -85,7 +85,7 @@ google-resumable-media==2.7.2 # via # -c requirements/common-constraints.txt # google-cloud-bigquery -googleapis-common-protos==1.69.2 +googleapis-common-protos==1.70.0 # via # -c requirements/common-constraints.txt # google-api-core @@ -99,7 +99,7 @@ grpcio-status==1.71.0 # via # -c requirements/common-constraints.txt # google-api-core -identify==2.6.9 +identify==2.6.10 # via # -c requirements/common-constraints.txt # pre-commit @@ -135,7 +135,7 @@ mdurl==0.1.2 # via # -c requirements/common-constraints.txt # markdown-it-py -multiprocess==0.70.17 +multiprocess==0.70.18 # via # -c requirements/common-constraints.txt # pathos @@ -160,15 +160,15 @@ pandas==2.2.3 # via # -c requirements/common-constraints.txt # -r requirements/requirements-dev.in -pathos==0.3.3 +pathos==0.3.4 # via # -c requirements/common-constraints.txt # lox -pillow==11.1.0 +pillow==11.2.1 # via # -c requirements/common-constraints.txt # matplotlib -pip==25.0.1 +pip==25.1 # via # -c requirements/common-constraints.txt # pip-tools @@ -184,11 +184,11 @@ pluggy==1.5.0 # via # -c requirements/common-constraints.txt # pytest -pox==0.3.5 +pox==0.3.6 # via # -c requirements/common-constraints.txt # pathos -ppft==1.7.6.9 +ppft==1.7.7 # via # -c requirements/common-constraints.txt # pathos @@ -261,7 +261,7 @@ rich==14.0.0 # via # -c requirements/common-constraints.txt # typer -rsa==4.9 +rsa==4.9.1 # via # -c requirements/common-constraints.txt # google-auth @@ -269,7 +269,7 @@ semver==3.0.4 # via # -c requirements/common-constraints.txt # -r requirements/requirements-dev.in -setuptools==78.1.0 +setuptools==80.0.0 # via # -c requirements/common-constraints.txt # pip-tools @@ -297,7 +297,7 @@ urllib3==2.4.0 # via # -c requirements/common-constraints.txt # requests -uv==0.6.14 +uv==0.6.17 # via # -c requirements/common-constraints.txt # -r requirements/requirements-dev.in diff --git a/requirements/requirements-help.txt b/requirements/requirements-help.txt index ed7c40aab..bac3da465 100644 --- a/requirements/requirements-help.txt +++ b/requirements/requirements-help.txt @@ -4,7 +4,7 @@ aiohappyeyeballs==2.6.1 # via # -c requirements/common-constraints.txt # aiohttp -aiohttp==3.11.16 +aiohttp==3.11.18 # via # -c requirements/common-constraints.txt # huggingface-hub @@ -25,11 +25,11 @@ attrs==25.3.0 # via # -c requirements/common-constraints.txt # aiohttp -banks==2.1.1 +banks==2.1.2 # via # -c requirements/common-constraints.txt # llama-index-core -certifi==2025.1.31 +certifi==2025.4.26 # via # -c requirements/common-constraints.txt # httpcore @@ -70,7 +70,7 @@ filetype==1.2.0 # via # -c requirements/common-constraints.txt # llama-index-core -frozenlist==1.5.0 +frozenlist==1.6.0 # via # -c requirements/common-constraints.txt # aiohttp @@ -81,19 +81,19 @@ fsspec==2025.3.2 # huggingface-hub # llama-index-core # torch -greenlet==3.1.1 +greenlet==3.2.1 # via # -c requirements/common-constraints.txt # sqlalchemy -griffe==1.7.2 +griffe==1.7.3 # via # -c requirements/common-constraints.txt # banks -h11==0.14.0 +h11==0.16.0 # via # -c requirements/common-constraints.txt # httpcore -httpcore==1.0.8 +httpcore==1.0.9 # via # -c requirements/common-constraints.txt # httpx @@ -151,7 +151,7 @@ multidict==6.4.3 # -c requirements/common-constraints.txt # aiohttp # yarl -mypy-extensions==1.0.0 +mypy-extensions==1.1.0 # via # -c requirements/common-constraints.txt # typing-inspect @@ -182,7 +182,7 @@ packaging==24.2 # huggingface-hub # marshmallow # transformers -pillow==11.1.0 +pillow==11.2.1 # via # -c requirements/common-constraints.txt # llama-index-core @@ -237,7 +237,7 @@ scipy==1.13.1 # -c requirements/common-constraints.txt # scikit-learn # sentence-transformers -sentence-transformers==4.0.2 +sentence-transformers==4.1.0 # via # -c requirements/common-constraints.txt # llama-index-embeddings-huggingface @@ -249,7 +249,7 @@ sqlalchemy[asyncio]==2.0.40 # via # -c requirements/common-constraints.txt # llama-index-core -sympy==1.13.3 +sympy==1.14.0 # via # -c requirements/common-constraints.txt # torch @@ -282,7 +282,7 @@ tqdm==4.67.1 # nltk # sentence-transformers # transformers -transformers==4.51.2 +transformers==4.51.3 # via # -c requirements/common-constraints.txt # sentence-transformers @@ -317,7 +317,7 @@ wrapt==1.17.2 # -c requirements/common-constraints.txt # deprecated # llama-index-core -yarl==1.19.0 +yarl==1.20.0 # via # -c requirements/common-constraints.txt # aiohttp diff --git a/requirements/requirements-playwright.txt b/requirements/requirements-playwright.txt index 37b78ff87..536775faa 100644 --- a/requirements/requirements-playwright.txt +++ b/requirements/requirements-playwright.txt @@ -1,6 +1,6 @@ # This file was autogenerated by uv via the following command: # uv pip compile --no-strip-extras --constraint=requirements/common-constraints.txt --output-file=requirements/requirements-playwright.txt requirements/requirements-playwright.in -greenlet==3.1.1 +greenlet==3.2.1 # via # -c requirements/common-constraints.txt # playwright diff --git a/requirements/requirements.in b/requirements/requirements.in index 101f16988..56bd17132 100644 --- a/requirements/requirements.in +++ b/requirements/requirements.in @@ -28,6 +28,7 @@ watchfiles socksio pip pillow +google-generativeai # The proper dependency is networkx[default], but this brings # in matplotlib and a bunch of other deps From 09030de0b54cfecfaee1920264126423ff514a4d Mon Sep 17 00:00:00 2001 From: Eryk Wieliczko Date: Fri, 2 May 2025 03:52:29 +0200 Subject: [PATCH 10/11] Show dates on "Release history" chart --- aider/website/_includes/blame.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/aider/website/_includes/blame.md b/aider/website/_includes/blame.md index 61758a7db..e1b75a431 100644 --- a/aider/website/_includes/blame.md +++ b/aider/website/_includes/blame.md @@ -27,7 +27,7 @@ document.addEventListener('DOMContentLoaded', function () { labels: labels, datasets: [{ label: 'Aider\'s percent of new code by release', - data: [{% for row in site.data.blame %}{ x: '{{ row.end_tag }}', y: {{ row.aider_percentage }}, lines: {{ row.aider_total }} },{% endfor %}], + data: [{% for row in site.data.blame %}{ x: '{{ row.end_tag }}', y: {{ row.aider_percentage }}, lines: {{ row.aider_total }}, end_date: '{{ row.end_date }}' },{% endfor %}], backgroundColor: 'rgba(54, 162, 235, 0.8)', borderColor: 'rgba(54, 162, 235, 1)', borderWidth: 1 @@ -88,6 +88,10 @@ document.addEventListener('DOMContentLoaded', function () { var value = context.parsed.y || 0; var lines = context.raw.lines || 0; return `${label}: ${Math.round(value)}% (${lines} lines)`; + }, + afterLabel: function(context) { + let date = context.raw.end_date || 'n/a'; + return `Date: ` + date; } } }, From fdc7be1318af92f364b3b03308276a5364d052cb Mon Sep 17 00:00:00 2001 From: Enno Richter Date: Fri, 2 May 2025 05:43:45 +0200 Subject: [PATCH 11/11] docs: update lint/test pre-commit shell script example to use "$@" for proper argument handling --- aider/website/docs/usage/lint-test.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aider/website/docs/usage/lint-test.md b/aider/website/docs/usage/lint-test.md index 0dfdccbae..c44398788 100644 --- a/aider/website/docs/usage/lint-test.md +++ b/aider/website/docs/usage/lint-test.md @@ -52,8 +52,8 @@ the script as your linter. # Second attempt will not do anything and exit 0 unless there's a real problem beyond # the code formatting that was completed. -pre-commit run --files $* >/dev/null \ - || pre-commit run --files $* +pre-commit run --files "$@" >/dev/null \ + || pre-commit run --files "$@" ``` ## Testing