@@ -1606,19 +1606,29 @@ async def _generic_chat_command(self, args, edit_format, placeholder=None):
16061606
16071607 from aider .coders .base_coder import Coder
16081608
1609+ user_msg = args
1610+
16091611 original_main_model = self .coder .main_model
16101612 original_edit_format = self .coder .edit_format
1613+ kwargs = {
1614+ "io" : self .coder .io ,
1615+ "from_coder" : self .coder ,
1616+ "edit_format" : edit_format ,
1617+ "summarize_from_coder" : False ,
1618+ "num_cache_warming_pings" : 0 ,
1619+ "aider_commit_hashes" : self .coder .aider_commit_hashes ,
1620+ "args" : self .coder .args ,
1621+ }
1622+
1623+ kwargs ["mcp_servers" ] = [] # Empty to skip initialization
1624+
1625+ coder = await Coder .create (** kwargs )
1626+ # Transfer MCP state to avoid re-initialization
1627+ coder .mcp_servers = self .coder .mcp_servers
1628+ coder .mcp_tools = self .coder .mcp_tools
1629+ # Transfer TUI app weak reference
1630+ coder .tui = self .coder .tui
16111631
1612- coder = await Coder .create (
1613- io = self .io ,
1614- from_coder = self .coder ,
1615- edit_format = edit_format ,
1616- summarize_from_coder = False ,
1617- num_cache_warming_pings = 0 ,
1618- aider_commit_hashes = self .coder .aider_commit_hashes ,
1619- )
1620-
1621- user_msg = args
16221632 await coder .generate (user_message = user_msg , preproc = False )
16231633 self .coder .aider_commit_hashes = coder .aider_commit_hashes
16241634
@@ -1649,7 +1659,7 @@ def get_help_md(self):
16491659 res += "\n "
16501660 return res
16511661
1652- def cmd_voice (self , args ):
1662+ async def cmd_voice (self , args ):
16531663 "Record and transcribe voice input"
16541664
16551665 if not self .voice :
@@ -1667,14 +1677,19 @@ def cmd_voice(self, args):
16671677 return
16681678
16691679 try :
1670- text = self .voice .record_and_transcribe (None , language = self .voice_language )
1680+ self .coder .io .update_spinner ("Recording..." )
1681+ text = await self .voice .record_and_transcribe (None , language = self .voice_language )
16711682 except litellm .OpenAIError as err :
16721683 self .io .tool_error (f"Unable to use OpenAI whisper model: { err } " )
16731684 return
16741685
16751686 if text :
16761687 self .io .placeholder = text
16771688
1689+ if self .coder .tui and self .coder .tui ():
1690+ self .coder .tui ().set_input_value (text )
1691+ self .coder .tui ().refresh ()
1692+
16781693 def cmd_paste (self , args ):
16791694 """Paste image/text from the clipboard into the chat.\
16801695 Optionally provide a name for the image."""
0 commit comments