mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-23 13:54:59 +00:00
fix: Improve prompt caching and repo map refresh logic
This commit is contained in:
parent
f8b80548fd
commit
34dc7cc37d
5 changed files with 14 additions and 7 deletions
11
HISTORY.md
11
HISTORY.md
|
@ -3,8 +3,17 @@
|
||||||
|
|
||||||
### main branch
|
### main branch
|
||||||
|
|
||||||
|
- Prompt caching for Anthropic models with `--cache-prompts`.
|
||||||
|
- Caches the system prompt, repo map and `/read-only` files.
|
||||||
|
- Repo map recomputes less often in large/mono repos or when caching enabled.
|
||||||
|
- Use `--map-refresh <always|files|manual|auto>` to configure.
|
||||||
|
- Improved cost estimate logic for caching.
|
||||||
- Improved editing performance on Jupyter Notebook `.ipynb` files.
|
- Improved editing performance on Jupyter Notebook `.ipynb` files.
|
||||||
- Work around litellm tokenizer bug for images.
|
- Show which config yaml file is loaded with `--verbose`.
|
||||||
|
- Bumped dependency versions.
|
||||||
|
- Bugfix: properly load `.aider.models.metadata.json` data.
|
||||||
|
- Bugfix: Using `--msg /ask ...` caused an exception.
|
||||||
|
- Bugfix: litellm tokenizer bug for images.
|
||||||
|
|
||||||
### Aider v0.50.1
|
### Aider v0.50.1
|
||||||
|
|
||||||
|
|
|
@ -205,13 +205,13 @@ def get_parser(default_config_files, git_root):
|
||||||
"--map-refresh",
|
"--map-refresh",
|
||||||
choices=["auto", "always", "files", "manual"],
|
choices=["auto", "always", "files", "manual"],
|
||||||
default="auto",
|
default="auto",
|
||||||
help="Control when the repo map is refreshed (default: auto)",
|
help="Control how often the repo map is refreshed (default: auto)",
|
||||||
)
|
)
|
||||||
group.add_argument(
|
group.add_argument(
|
||||||
"--cache-prompts",
|
"--cache-prompts",
|
||||||
action=argparse.BooleanOptionalAction,
|
action=argparse.BooleanOptionalAction,
|
||||||
default=False,
|
default=False,
|
||||||
help="Enable caching of prompts (forces map_refresh='files') (default: False)",
|
help="Enable caching of prompts (default: False)",
|
||||||
)
|
)
|
||||||
group.add_argument(
|
group.add_argument(
|
||||||
"--max-chat-history-tokens",
|
"--max-chat-history-tokens",
|
||||||
|
|
|
@ -1017,7 +1017,7 @@ class Commands:
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.io.tool_error(f"Error processing clipboard content: {e}")
|
self.io.tool_error(f"Error processing clipboard content: {e}")
|
||||||
|
|
||||||
def cmd_read(self, args):
|
def cmd_read_only(self, args):
|
||||||
"Add a file to the chat that is for reference, not to be edited"
|
"Add a file to the chat that is for reference, not to be edited"
|
||||||
if not args.strip():
|
if not args.strip():
|
||||||
self.io.tool_error("Please provide a filename to read.")
|
self.io.tool_error("Please provide a filename to read.")
|
||||||
|
|
|
@ -507,7 +507,7 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F
|
||||||
args.max_chat_history_tokens or main_model.max_chat_history_tokens,
|
args.max_chat_history_tokens or main_model.max_chat_history_tokens,
|
||||||
)
|
)
|
||||||
|
|
||||||
if args.cache_prompts:
|
if args.cache_prompts and args.map_refresh == "auto":
|
||||||
args.map_refresh = "files"
|
args.map_refresh = "files"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -530,8 +530,6 @@ class TestMain(TestCase):
|
||||||
|
|
||||||
MockRepoMap.assert_called_once()
|
MockRepoMap.assert_called_once()
|
||||||
call_args, call_kwargs = MockRepoMap.call_args
|
call_args, call_kwargs = MockRepoMap.call_args
|
||||||
self.assertEqual(call_args[0], 1024) # Check the first positional argument
|
|
||||||
self.assertEqual(call_args[1], temp_dir) # Check the second positional argument
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
call_kwargs.get("refresh"), "files"
|
call_kwargs.get("refresh"), "files"
|
||||||
) # Check the 'refresh' keyword argument
|
) # Check the 'refresh' keyword argument
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue