Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
b0a88fb
Allow globbing in read and file args.
chr15m Feb 27, 2025
954fffb
Merge branch 'main' into issue-3366-globbing
chr15m Mar 8, 2025
f73e744
Merge branch 'main' into issue-3366-globbing
chr15m Mar 9, 2025
d993a75
Merge branch 'main' into issue-3366-globbing
chr15m Mar 10, 2025
541d413
Merge branch 'issue-3366-globbing'
chr15m Apr 9, 2025
200aa91
Merge branch 'main' of github.com:Aider-AI/aider
chr15m Apr 13, 2025
f80f3c4
Merge remote-tracking branch 'origin/main' into issue-3366-globbing
chr15m Apr 15, 2025
feeeeb1
Merge branch 'main' of github.com:Aider-AI/aider
chr15m Apr 26, 2025
cb7dcf7
Merge branch 'main' into issue-3366-globbing
chr15m Apr 26, 2025
403e345
Merge branch 'main' of github.com:Aider-AI/aider
chr15m May 8, 2025
0c0e5f0
Merge branch 'main' into issue-3366-globbing
chr15m May 8, 2025
857ed77
Merge branch 'main' of github.com:Aider-AI/aider
chr15m May 24, 2025
db8bca4
Merge branch 'main' into issue-3366-globbing
chr15m May 24, 2025
5928b19
Merge branch 'main' of github.com:Aider-AI/aider
chr15m May 26, 2025
93a2f32
Merge branch 'main' into issue-3366-globbing
chr15m May 26, 2025
d16f0c6
Merge branch 'main' of github.com:Aider-AI/aider
chr15m May 29, 2025
8116497
Merge branch 'main' into issue-3366-globbing
chr15m May 29, 2025
f4b53be
Merge branch 'main' of github.com:Aider-AI/aider
chr15m Jun 5, 2025
6f2d73d
Merge branch 'main' into issue-3366-globbing
chr15m Jun 5, 2025
8dd1d97
Merge branch 'main' of github.com:Aider-AI/aider
chr15m Jun 13, 2025
ead9683
Merge branch 'main' of github.com:Aider-AI/aider
chr15m Jul 2, 2025
17101b5
Merge branch 'main' into issue-3366-globbing
chr15m Jul 2, 2025
504d39d
Merge branch 'main' of github.com:Aider-AI/aider
chr15m Jul 17, 2025
fc4b10a
Merge branch 'main' into issue-3366-globbing
chr15m Jul 17, 2025
95da0c4
Merge branch 'main' of github.com:Aider-AI/aider
chr15m Aug 24, 2025
dd91115
Merge branch 'main' into issue-3366-globbing
chr15m Aug 24, 2025
e8926e3
Merge branch 'main' of github.com:Aider-AI/aider
chr15m Sep 16, 2025
dc05127
Merge branch 'main' into issue-3366-globbing
chr15m Sep 16, 2025
bfed819
Remove duplicate instruction in what language model should respond
muravvv Sep 15, 2025
11516d6
Merge pull request #4557 from muravvv/remove_duplicated_language
paul-gauthier Oct 5, 2025
8820836
Merge branch 'main' into issue-3366-globbing
chr15m Oct 13, 2025
81c7d77
Bump Version
dwash96 Oct 18, 2025
e25656c
Merge remote-tracking branch 'main/main' into v0.87.12
dwash96 Oct 18, 2025
5593011
Merge remote-tracking branch 'read-glob/issue-3366-globbing' into v0.…
dwash96 Oct 18, 2025
98612a5
Add Project Road Map
dwash96 Oct 18, 2025
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
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
## Project Roadmap/Goals

The current priorities are to improve core capabilities and user experience of the Aider project

1. **Base Asynchronicity (aider-ce coroutine-experiment branch)**
* [x] Refactor codebase to have the main loop run asynchronously
* [x] Update test harness to work with new asynchronous methods

2. **Repo Map Accuracy**
* [ ] [Bias page ranking toward active/editable files in repo map parsing](https://github.com/Aider-AI/aider/issues/2405)
* [ ] [Handle non-unique symbols that break down in large codebases](https://github.com/Aider-AI/aider/issues/2341)
* [ ] [Include AST information in repo map for richer context](https://github.com/Aider-AI/aider/issues/2688)

3. **Context Discovery**
* [ ] Develop AST-based search capabilities
* [ ] Enhance file search with ripgrep integration
* [ ] Implement RAG (Retrieval-Augmented Generation) for better code retrieval
* [ ] Build an explicit workflow and local tooling for internal discovery mechanisms

4. **Context Delivery**
* [ ] Use workflow for internal discovery to better target file snippets needed for specific tasks
* [ ] Add support for partial files and code snippets in model completion messages

5. **TUI Experience**
* [ ] Add a full TUI (probably using textual) to have a visual interface competitive with the other coding agent terminal programs
* [ ] Re-integrate pretty output formatting
* [ ] Implement a response area, a prompt area with current auto completion capabilities, and a helper area for management utility commands

## Fork Additions

This project aims to be compatible with upstream Aider, but with priority commits merged in and with some opportunistic bug fixes and optimizations
Expand Down Expand Up @@ -32,6 +60,7 @@ This project aims to be compatible with upstream Aider, but with priority commit
* [Remove Confirm Responses from History](https://github.com/Aider-AI/aider/pull/3958)
* [Benchmark Results By Language](https://github.com/dwash96/aider-ce/pull/27)
* [Allow Benchmarks to Use Repo Map For Better Accuracy](https://github.com/dwash96/aider-ce/pull/25)
* [Read File Globbing](https://github.com/Aider-AI/aider/pull/3395)

### Other Notes
* [MCP Configuration](https://github.com/dwash96/aider-ce/blob/main/aider/website/docs/config/mcp.md)
Expand Down
2 changes: 1 addition & 1 deletion aider/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from packaging import version

__version__ = "0.87.11.dev"
__version__ = "0.87.12.dev"
safe_version = __version__

try:
Expand Down
4 changes: 2 additions & 2 deletions aider/args.py
Original file line number Diff line number Diff line change
Expand Up @@ -780,13 +780,13 @@ def get_parser(default_config_files, git_root):
"--file",
action="append",
metavar="FILE",
help="specify a file to edit (can be used multiple times)",
help="specify a file to edit (can be used multiple times, glob patterns supported)",
).complete = shtab.FILE
group.add_argument(
"--read",
action="append",
metavar="FILE",
help="specify a read-only file (can be used multiple times)",
help="specify a read-only file (can be used multiple times, glob patterns supported)",
).complete = shtab.FILE
group.add_argument(
"--vim",
Expand Down
2 changes: 0 additions & 2 deletions aider/coders/editblock_prompts.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ class EditBlockPrompts(CoderPrompts):
Consider potential edge cases.
Think about how to verify your changes are correct.

Always reply to the user in {language}.

Once you understand the request and have a plan, you MUST:

1. Decide if you need to propose *SEARCH/REPLACE* edits to any files that haven't been added to the chat. You can create new files without asking!
Expand Down
2 changes: 0 additions & 2 deletions aider/coders/patch_prompts.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ class PatchPrompts(EditBlockPrompts):
Take requests for changes to the supplied code.
If the request is ambiguous, ask questions.

Always reply to the user in {language}.

Once you understand the request you MUST:

1. Decide if you need to propose edits to any files that haven't been added to the chat. You can create new files without asking!
Expand Down
2 changes: 0 additions & 2 deletions aider/coders/udiff_prompts.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ class UnifiedDiffPrompts(CoderPrompts):
Take requests for changes to the supplied code.
If the request is ambiguous, ask questions.

Always reply to the user in {language}.

Once you have a plan, for each file that needs to be changed, write out the changes similar to a unified diff like `diff -U0` would produce.
"""

Expand Down
5 changes: 0 additions & 5 deletions aider/coders/wholefile_prompts.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,6 @@ class WholeFilePrompts(CoderPrompts):
Think step-by-step. Plan your changes carefully. Explain your plan first.
Take requests for changes to the supplied code.
If the request is ambiguous, ask questions.
Consider potential edge cases.
Think about how to verify your changes are correct.

Always reply to the user in {language}.

{final_reminders}
Once you understand the request and have a plan, you MUST:
1. Determine if any code changes are needed.
Expand Down
28 changes: 27 additions & 1 deletion aider/main.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import glob
import json
import os
import re
Expand Down Expand Up @@ -449,6 +450,25 @@ def sanity_check_repo(repo, io):
return False


def expand_glob_patterns(patterns, root="."):
"""Expand glob patterns in a list of file paths."""
expanded_files = []
for pattern in patterns:
# Check if the pattern contains glob characters
if any(c in pattern for c in "*?[]"):
# Use glob to expand the pattern
matches = glob.glob(pattern, recursive=True)
if matches:
expanded_files.extend(matches)
else:
# If no matches, keep the original pattern
expanded_files.append(pattern)
else:
# Not a glob pattern, keep as is
expanded_files.append(pattern)
return expanded_files


def main(argv=None, input=None, output=None, force_git_root=None, return_coder=False):
report_uncaught_exceptions()

Expand Down Expand Up @@ -677,10 +697,16 @@ def get_io(pretty):
for fname in loaded_dotenvs:
io.tool_output(f"Loaded {fname}")

# Expand glob patterns in files and file arguments
all_files = args.files + (args.file or [])
all_files = expand_glob_patterns(all_files)
fnames = [str(Path(fn).resolve()) for fn in all_files]

# Expand glob patterns in read arguments
read_patterns = args.read or []
read_expanded = expand_glob_patterns(read_patterns)
read_only_fnames = []
for fn in args.read or []:
for fn in read_expanded:
path = Path(fn).expanduser().resolve()
if path.is_dir():
read_only_fnames.extend(str(f) for f in path.rglob("*") if f.is_file())
Expand Down
Loading