- Extracted Markdown rendering logic from MessageBody into a new MessageMarkdown component.
- Moved CodeButtons component into the new MessageMarkdown directory.
- Updated MessageBody to use the new MessageMarkdown component.
- Added value attributes to buttons in the initial bot message in ChatStore.
- Corrected indentation in package.json for DevChat.PythonVirtualEnv.
- Added 'rehype-raw' to dependencies in package.json.
- Imported 'rehype-raw' in MessageBody component and added it to ReactMarkdown as a rehypePlugin.
- Enhanced initial bot message in ChatStore with additional information and buttons.
- Removed useEffect hook in MessageList that was adding initial messages.
- Added logic in ChatStore to add initial messages when messages length is 0.
- Refactored CurrentMessage component to destructure properties from chat.
- Added useEffect hooks to handle message generation and updating in CurrentMessage.
- Updated MessageList to use useEffect to add initial messages to chat.
- Removed unused 'key' prop from MessageAvatar component.
- Converted MessageBody component to use observer from mobx-react-lite.
- Added 'messageText' and 'messageType' to MessageBody props interface.
- Removed extra line breaks in MessageBody component.
- Expanded MessageAvatar props to include avatarType, copyMessage, messageContexts, and deleteHash.
- Updated MessageAvatar to use new props instead of item prop.
- Updated MessageList to pass new props to MessageAvatar.
- Refactored deleteMessage function in ChatStore to accept messageHash instead of item.
- Updated setContexts function in InputStore to accept IChatContext array.
- Renamed CodeBlock component to MessageBody for better clarity.
- Updated all references of CodeBlock to MessageBody in the codebase.
- Moved CodeBlock related files to MessageBody directory.
- Renamed MessageHeader component to MessageAvatar for better clarity.
- Updated all references of MessageHeader to MessageAvatar in the codebase.
- Moved avatar images from MessageHeader directory to MessageAvatar directory.
- Added commands for adding context and summary to DevChat.
- Updated the package.json file to include the new commands.
- Added command handlers for indexing and describing codebase summaries.
- Created a new file, askcode_summary_index.py, for indexing and describing codebase summaries.
- Added a new setting file, _setting_.json, for the summary action in the auto_command workflow.
- Added a new handler file, handler.py, for the summary action in the auto_command workflow.
- Update the registerAskCodeIndexStartCommand function to pass the progressBar object to the installAskCode and indexCode functions.
- Update the installAskCode function to accept the progressBar object as a parameter.
- Update the indexCode function to accept the progressBar object as a parameter.
- Update the progress bar messages in the registerAskCodeIndexStartCommand function.
- Update the logic for parsing the response from the devchat prompt command.
- Handle different response formats, including JSON, array, and plain text.
- Extract symbols from the response and return them as an array.
- Log the response for debugging purposes.
- Create a new ProgressBar class to handle progress reporting.
- Initialize the progress bar with a title and location.
- Implement the init() method to start the progress bar.
- Implement the update() method to update the progress message.
- Implement the end() method to end the progress bar.
- Implement the endWithError() method to end the progress bar with an error message.
- Add errorOut variable to capture stderr data.
- Use logger to output stderr data.
- Show logger channel.
- Check if code is not 0 and errorOut is not empty to resolve with false.
- Refactored the createStatusBarItem function in statusBarView.ts to use vscode.window.withProgress for a better user experience.
- Added a progress indicator while checking the devchat dependency environment.
- Updated the status bar item text, tooltip, and command based on the dependency and API key status.
- Added error handling for any exceptions that occur during the dependency check.
- Updated the updateConfiguration function in uiUtil_vscode.ts to include error handling.
- Added a new boolean flag 'hasLoadTopics' to track whether topics have been loaded.
- If the devchat package has been installed and the API access key is valid, the 'loadTopics()' method of the TopicManager class is called.
- This ensures that topics are only loaded once when the dependencies are satisfied.
- Extracted the creation and setup of environment variables into a separate async function `createOpenAiKeyEnv`.
- This function copies the current environment variables and modifies the `OPENAI_API_KEY` and `OPENAI_API_BASE` as needed.
- Replaced the inline environment variable setup in `runCommandAndWriteOutput`, `runCommandStringAndWriteOutput`, and `runCommandStringArrayAndWriteOutput` with a call to `createOpenAiKeyEnv`.
- Added PythonVirtualEnv configuration to customAction.ts.
- Improved error handling in doCommand.ts by using logger instead of console.error.
- Updated sendMessage.ts to handle askCode command and improved error handling.
- Added environment variables for OPENAI_API_KEY and OPENAI_API_BASE in commonUtil.ts.
- Created new action 'query_data' in _setting_.json and its handler in handler.py.
- Added a new function 'doCommand' in 'doCommand.ts' to execute VSCode commands.
- The function takes a message and a panel as arguments, and uses the 'executeCommand' method from the 'vscode' module.
- Updated 'commandManager.ts' to return an empty string instead of undefined.
- Registered the new 'doCommand' handler in 'loadHandlers.ts'.
- Added a new function updateLastModifyTime in askCodeUtil.ts to update the last modification time of files.
- The function ignores hidden files and directories (those starting with '.').
- The function creates the directory if it does not exist before writing the file.
- Added a new status bar item for AskCode in statusBarView.ts.
- The status bar item checks the indexing status every 10 seconds and updates its tooltip and command accordingly.
- Added new functions to register AskCode Index start and stop commands in commands.ts.
- Implemented functions to install AskCode and index code.
- Added function to get configuration settings for Python virtual environment and supported file types.
- Updated sendMessage.ts to handle 'askCode' command and execute AskCode query.
- Added new settings for Python virtual environment and supported file types in package.json.
- Added new commands for starting and stopping AskCode Index in package.json.
- Registered new 'ask-code' command in CommandManager.
- Registered AskCode Index start and stop commands in extension.ts.
- Added 'askCode' handler in loadHandlers.ts and messageHandler.ts.
- Updated messageHandler to check for '/ask-code' in message text and call 'askCode' command.
- Added 'path' property to ChatContext model in InputStore.ts.
- Updated InputMessage and MessageContainer components to use 'path' instead of 'file' for display.
- Updated ChatStore to include 'path' in the context object.
- Made 'contexts' prop optional in MessageContainer component.
- Refactored MessageContainer component to return a fragment.
- Made 'showEdit' prop optional in MessageHeader component.
- Updated the startGenerating action to include both command and content in the context object.
- Refactored the loadHistory action to parse the content of each context before creating a new message.
- Imported the Message model from ChatStore in InputMessage/index.tsx.
- Updated the handleSendClick function to create a new Message object before calling the newMessage action.
- Updated the startGenerating action in ChatStore.ts to accept an array of chat contexts.
- Updated the map function in the loadHistory action to directly use the context field of each item.
- Imported the ChatContext model from InputStore in InputMessage/index.tsx.
- Updated the handleSendClick function to create a new ChatContext object before calling the newContext action.
- Updated the newContext action in InputStore.ts to accept an IChatContext object.
- Updated the CurrentMessage component to use the Message model from ChatStore.
- Replaced chat.lastMessage with the last message in the chat.messages array.
- Updated the useEffect hooks to create a new Message object and pass it to the newMessage and updateLastMessage actions.
- Updated the chatPanel function in ChatPanel.tsx to create a new Message object before calling the newMessage action.
- Removed the lastMessage field from the ChatStore model.
- Updated the startResponsing action to accept a string parameter.
- Updated the updateLastMessage action to accept a string parameter and update the message field of the last message in the chat.messages array.
- Simplified the handleSendClick function in InputMessage/index.tsx to directly use input.value.
- Made 'contexts' an optional field in the Message model in ChatStore.ts.
- Updated the newMessage and updateLastMessage actions in ChatStore.ts to accept an IMessage object.
- Added IProps interface and updated the MessageHeader component to use typed props in MessageHeader/index.tsx.
- Updated the deleteMessage function in ChatStore.ts to accept an IMessage object instead of a params object.
- Added an export for the IMessage type in ChatStore.ts.
- Updated the setContexts action in InputStore.ts to accept an array of IChatContext objects and to push a copy of each context object to self.contexts.
- Added an export for the IChatContext type in InputStore.ts.
- Added IProps interface and updated the MessageContext component to use destructured props in MessageContainer/index.tsx.
- Refactored the map function in MessageContext to destructure the item object.
- Updated the display text in the Accordion.Control component to use destructured values.
- Replaced 'context.content' with 'content' in the Accordion.Panel component.
- In ChatStore.ts, updated the Message model to use the ChatContext model from InputStore for the 'contexts' field.
- Refactored the map function in the 'load' action of ChatStore to destructure and return the parsed context object.
- Made 'file' an optional string in the ChatContext model in InputStore.ts.
- Added an export for the IInputStore type in InputStore.ts.
- Imported ChatContext from InputStore in InputContexts.tsx.
- Refactored the map function in InputContexts to destructure the context object.
- Updated the display text in the Accordion.Control component to use destructured values.
- Replaced 'context.content' with 'content' in the Accordion.Panel component.
- In InputMessage/index.tsx, updated the newContext method call to use 'context.content'.
- Added 'command' as an optional string to the ChatContext model in InputStore.ts.
- Refactored fetchHistoryMessages and deleteMessage actions in ChatStore to use MobX flow for handling async operations.
- Updated calls to these actions in MessageHeader and ChatPanel components to handle promises returned by these actions.
- Replaced Redux hooks with MobX hooks in MessageContainer and MessageHeader components.
- Removed Redux actions and replaced them with equivalent MobX actions.
- Updated event handlers to use MobX actions instead of Redux actions.
- Replaced Redux selectors with equivalent MobX observables.
- Converted MessageContainer and MessageHeader components to observer components.
- Replaced Redux hooks with MobX hooks in CurrentMessage component.
- Removed Redux actions and replaced them with equivalent MobX actions.
- Updated useEffect hooks to use MobX actions instead of Redux actions.
- Replaced Redux selectors with equivalent MobX observables.
- Converted CurrentMessage and MessageBlink components to observer components.
- Replaced Redux hooks with MobX hooks in InputMessage and InputContexts components.
- Removed Redux actions and replaced them with equivalent MobX actions.
- Updated event handlers and useEffect hooks to use MobX actions instead of Redux actions.
- Replaced Redux selectors with equivalent MobX observables.
- Replaced Redux hooks with MobX hooks in RegenerationButton and StopButton components.
- Removed Redux actions and replaced them with equivalent MobX actions.
- Updated onClick handlers to use MobX actions instead of Redux actions.
- Replaced Redux hooks with MobX hooks for state management.
- Removed Redux actions and replaced them with equivalent MobX actions.
- Updated useEffect hook to use MobX actions instead of Redux actions.
- Replaced Redux selectors with equivalent MobX observables.
- Deleted Redux store configuration file (store.ts).
- Removed inputSlice.ts and chatSlice.ts which contained Redux slices for managing chat and input state.
- Deleted index.ts which contained Redux hooks for dispatching actions and selecting state.
- Added MobX, mobx-react, and mobx-state-tree to package.json.
- Refactored state management in index.tsx to use MobX instead of Redux.
- Created new MobX stores: ChatStore, InputStore, and RootStore.
- Implemented async actions in ChatStore and InputStore using mobx-state-tree's flow.
- Updated RootStore to include instances of ChatStore and InputStore.
- Added a check in the registerAction method to prevent duplicate actions from being registered.
- Removed the line that clears the actions array in the loadCustomActions method.