- Renamed and split the API key settings in package.json into DevChat and OpenAI specific keys.
- Updated the commands for setting API keys to handle OpenAI and DevChat keys separately.
- Modified the ApiKeyManager to handle and validate OpenAI and DevChat keys separately.
- Updated the status bar view to use the DevChat access key command.
- Adjusted the tests to reflect the new handling of API keys.
- Modified the API key validation logic to check for non-empty strings before validating.
- Updated the API key prefix from 'sk.' to 'sk-' in the ApiKeyManager and corresponding tests.
- Adjusted the test cases to reflect the new API key format.
- Improved error handling and validation in symbol definition and reference retrieval functions.
- Enhanced the logic for finding the smallest symbol definition that contains the target range.
- Updated the function descriptions to provide more detailed information about their purpose, input, output, and error handling.
- Added 'ref_line' to the output of the symbol reference retrieval function.
- Added a new array `tempFiles` to store the names of temporary files created during the execution of the `sendMessage` function.
- When a new temporary file is created, its name is added to the `tempFiles` array.
- After the message is sent, the function iterates over the `tempFiles` array and deletes each file.
- This ensures that only the temporary files created during the execution of the function are deleted.
- Added createTempFile and deleteTempFiles functions in sendMessage.ts.
- Modified sendMessage function to handle contextInfo field in the message.
- If the file name is not present in the context, a temporary file is created.
- The file name is inserted into the text field of the message.
- All temporary files created are deleted after the message is sent.
- Modified handleSendClick function in InputMessage.tsx to process and send the message to the extension.
- Modified startGenerating reducer in chatSlice.ts to send the message with contextInfo.
- Imported tempfile module to create a temporary file.
- Replaced the creation of 'test.txt' in the current directory with a temporary file.
- The temporary file is automatically deleted when it is closed, eliminating the need for manual deletion.
- Changed the type hinting for the 'pipcmd' parameter in 'pip_cmd_run' and 'pip_cmd_with_retries' functions.
- The 'pipcmd' parameter now accepts any type, not just list of strings.
- Removed unnecessary if-else condition for errorInstall.
- Moved devchatCommandEnv extraction outside the if-else block.
- Added condition to check if devchatCommandEnv exists before updating configuration and setting devchatStatus.
- Added else block to handle case when devchatCommandEnv is undefined.
- Added a function to check if the symbol at a given index is the correct symbol.
- Adjusted the getSymbolPosition function to use the new check function.
- Enhanced the findSymbolInWorkspace function to handle more edge cases.
- Added more logging for better debugging and traceability.
- Split the SelectContextAction into two separate actions: SelectTextAction and SelectBlockAction.
- Updated the ActionManager to register these new actions.
- SelectTextAction retrieves the selected text in the active document.
- SelectBlockAction retrieves the entire block of code in the active document, such as a function, when a part of it is selected.
- Added CurrentDocumentAction and SelectContextAction to ActionManager.
- Created new files for CurrentDocumentAction and SelectContextAction.
- CurrentDocumentAction retrieves the current active document.
- SelectContextAction retrieves the selected information in the current document.
- Added new imports and removed unused ones in both classes.
- Refactored findSymbolInWorkspace function in SymbolDefAction to include symbol line and file.
- Added checks for absolute path for symbol file in handlerAction method of SymbolDefAction.
- Updated args in SymbolDefAction constructor to include line and file.
- Made getSymbolPosition function in SymbolRefAction exportable and updated its usage in SymbolDefAction.
- Minor changes in SymbolRefAction to improve code readability and efficiency.
- Added null checks before processing reference locations and symbols.
- Ensured that symbol children are processed only if they exist.
- Added a check to continue the loop if a symbol is not found.
- Removed unused import 'selectResponsed' from chatSlice.
- Replaced 'selecHasDone' with 'selectResponsed' for better clarity.
- Removed unnecessary condition check for 'hasDone' in useEffect.
- Added 'responsed' as a dependency in useEffect to trigger update when response is received.
- Added a check to ensure the messageHash equals the firstMessageHash before updating.
- This prevents unnecessary updates and ensures the correct message is targeted for deletion.
- Extracted RegenerationButton and StopButton components from ChatPanel into separate files.
- Removed unused imports and state from ChatPanel.
- Updated ChatPanel to use the new button components.
- Moved the registration of actions inside the instance creation conditional block.
- This ensures that actions are only registered when the instance is first created.
- Extracted the CodeButtons component from CodeBlock.tsx into a separate file.
- Created a new IconButton component to reduce code duplication.
- Set a default color for IconButton to simplify its usage.
- Updated imports in CodeBlock.tsx to reflect the changes.
- Registered a new handler for 'systemMessage' in ChatPanel.
- Added a new action 'startSystemMessage' in chatSlice to handle system messages.
- The new action updates the state to indicate the start of a system message.
- Updated expected DevChat version to 0.2.0.
- Refactored log handling to accommodate changes in DevChat's log structure.
- Added TopicEntry interface to handle new topic entries from DevChat.
- Updated topics function to return TopicEntry array.
- Adjusted topic creation to use new TopicEntry structure.
- Refactored applyAction to include parentHash in the message.
- Simplified codeFileApply function by removing redundant error handling.
- Enhanced error handling in MessageHandler to include parentHash.
- Added condition to regenerate message only if autox is true.
- Added start line parameter to handleCodeSelected function.
- Updated all calls to handleCodeSelected to include the start line.
- The start line is now included in the context data for symbol references and definitions.
- Added a new action, SymbolInFileAction, to retrieve all symbols in a specified file.
- The action returns a list of symbols with their name, kind, and position details.
- The file path can be relative to the workspace or an absolute path.
- Registered the new action in the ActionManager.
- Added a function to get the position of a symbol in a file.
- Refactored the findSymbolInWorkspace function to use the new getSymbolPosition function.
- Updated the SymbolRefAction class to include the line number of the symbol.
- Added a check to ensure the symbol file path is absolute.
- The symbol reference now includes the parent symbol's name and start line.
- Updated the return type of getActionInstruction function from 'any' to a specific object structure.
- The new return type includes 'name', 'description', and 'parameters' fields.
- Changed the data structure of symbol definitions from a simple string to a JSON object.
- The new structure includes the file path, start line, and content of the symbol.
- Added new action setting 'finish_task' in auto_command workflow.
- Updated the description in 'new_file' action setting in auto_command workflow.
- Modified 'run_shell_file' action setting in auto_command workflow to clarify it runs a shell script file.
- Added new action settings 'get_project_tree' and 'load_file' in extension_demo workflow.
- Created a new action class AskInputAction in askInputAction.ts.
- This action prompts the user for input with a specified question.
- Updated ActionManager to register the new AskInputAction.
- Added error handling in the actionInstruction method of ActionManager.
- Added a global variable 'autox' to control automatic execution of commands.
- Updated the 'sendMessage' function to handle '/autox' in the message text.
- If 'autox' is true and the message contains a command, the command is automatically executed.
- This feature will help in automating tasks and improving efficiency.
- Removed the specific handling for chatResponse.finish_reason === "function_call" in handlerResponseText and sendMessageBase functions.
- This specific handling was unnecessary and was causing confusion.