From 8eb1abf31f78dabe0efc6fa25b8a03fefa624419 Mon Sep 17 00:00:00 2001 From: Dhiraj Bhakta K Date: Mon, 22 Dec 2025 00:32:52 +0530 Subject: [PATCH 1/2] #301 TUI model warnings fix --- aider/io.py | 1 + aider/main.py | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/aider/io.py b/aider/io.py index b2d5d811197..4ec36d0f87c 100644 --- a/aider/io.py +++ b/aider/io.py @@ -753,6 +753,7 @@ async def recreate_input(self, future=None): await asyncio.sleep(0) else: self.input_task = asyncio.create_task(self.get_input(None, [], [], [])) + await asyncio.sleep(0) async def get_input( self, diff --git a/aider/main.py b/aider/main.py index 03ea584a6e9..81aa7197ffc 100644 --- a/aider/main.py +++ b/aider/main.py @@ -762,6 +762,7 @@ def get_io(pretty): # TUI mode - create TUI-specific IO output_queue = None input_queue = None + _console_io = get_io(args.pretty) if args.tui or (args.tui is None and not args.linear_output): try: from aider.tui import create_tui_io @@ -776,7 +777,7 @@ def get_io(pretty): print(f"Import error: {e}") sys.exit(1) else: - io = get_io(args.pretty) + io = _console_io # Only do CLI-specific initialization if not in TUI mode if not args.tui: @@ -1258,37 +1259,38 @@ def apply_model_overrides(model_name): repomap_in_memory=args.map_memory_cache, linear_output=args.linear_output, ) + _console_coder = coder.clone(io=_console_io) if args.show_model_warnings: - problem = await models.sanity_check_models(io, main_model) + problem = await models.sanity_check_models(_console_io, main_model) if problem: - io.tool_output("You can skip this check with --no-show-model-warnings") + _console_io.tool_output("You can skip this check with --no-show-model-warnings") try: - await io.offer_url( + await _console_io.offer_url( urls.model_warnings, "Open documentation url for more info?", acknowledge=True, ) - io.tool_output() + _console_io.tool_output() except KeyboardInterrupt: return await graceful_exit(coder, 1) if args.git: - git_root = await setup_git(git_root, io) + git_root = await setup_git(git_root, _console_io) if args.gitignore: - await check_gitignore(git_root, io) + await check_gitignore(git_root, _console_io) except UnknownEditFormat as err: - io.tool_error(str(err)) - await io.offer_url( + _console_io.tool_error(str(err)) + await _console_io.offer_url( urls.edit_formats, "Open documentation about edit formats?", acknowledge=True ) return await graceful_exit(None, 1) except ValueError as err: - io.tool_error(str(err)) + _console_io.tool_error(str(err)) return await graceful_exit(None, 1) @@ -1437,11 +1439,9 @@ def apply_model_overrides(model_name): except Exception: # Don't show errors for auto-load to avoid interrupting the user experience pass - # TUI mode - launch Textual interface if args.tui: from aider.tui import launch_tui - return_code = await launch_tui(coder, output_queue, input_queue, args) return await graceful_exit(coder, return_code) From 955c3b9d719af397d152cb39331d20a2e1ecc26e Mon Sep 17 00:00:00 2001 From: Dhiraj Bhakta K Date: Mon, 22 Dec 2025 00:55:54 +0530 Subject: [PATCH 2/2] Avoid Bottom status bar 'Thinking...' during /exit --- aider/tui/app.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/aider/tui/app.py b/aider/tui/app.py index 8cbca5bd286..b5dea720623 100644 --- a/aider/tui/app.py +++ b/aider/tui/app.py @@ -450,7 +450,8 @@ def on_input_area_submit(self, message: InputArea.Submit): # Update footer to show processing footer = self.query_one(AiderFooter) - footer.start_spinner("Thinking...") + if not user_input.startswith("/"): + footer.start_spinner("Thinking...") self.update_key_hints(generating=True)