- Added `isAllowedFileForContext` utility function to check if a file is of allowed types (markdown, PDF, or canvas).
- Updated `ChatInput` to use this function for setting the current active note.
- Refactored `BaseNoteModal` to utilize the new utility for filtering files and managing the active note state.
* feat(chat): Implement autosave for chat after messages and responses
Adds autosave functionality to the chat component, saving the chat after every user message and AI response if the autosave setting is enabled. Updates the autosave chat setting description for clarity.
* fix(chat): Use sharedState for visible messages in Chat
Updated the Chat component to filter visible messages using sharedState.getMessages() instead of chatHistory, ensuring the latest messages are used. Also removed a redundant notice when updating an existing note.
* fix(chat): Make autosave non-blocking
The handleSaveAsNote function is now called without await in autosaveChat blocks.
---------
Co-authored-by: Logan Yang <logancyang@gmail.com>
Pressing Escape while editing a message now cancels the edit and restores the original message. Also removed onBlur save behavior to prevent accidental saves when focus is lost.
- Added unit tests for slash command detection and replacement logic.
- Enhanced ChatInput component to show a modal for slash commands and replace the slash with the corresponding command content.
- Updated showCustomPromptModal to handle cursor position and current input value for better user experience.
- Updated GEMINI_PRO and GEMINI_FLASH constants to their stable versions.
- Added new OpenRouter models: OPENROUTER_GEMINI_2_5_FLASH, OPENROUTER_GEMINI_2_5_PRO, and OPENROUTER_GEMINI_2_5_FLASH_LITE.
- Enhanced ChatModelManager with default headers for API requests.
- Updated `brace-expansion` to versions 2.0.2 and 1.1.12 in package-lock.json.
- Refactored `AddProjectModal` to improve context labeling and descriptions.
- Enhanced `ContextManageModal` with tooltips and improved file context handling.
- Cleaned up imports and organized component structure in `context-manage-modal.tsx`.
- Fixed duplicate description rendering in `form-field.tsx`.
- Prevent suggestions for incomplete Obsidian wiki links.
- Allow native note completion to manage links in progress.
- Introduce checks for complete words with no significant completions to avoid unnecessary suggestions.
* feat: Add abort stream functionality to chat component and event handling
- Introduced ABORT_STREAM event in constants.
- Implemented event listener in Chat component to handle abort stream events.
- Updated CopilotPlugin to dispatch abort event before clearing chat history.
* Enhance chat with message restructuring for abort signal
* Remove .claude/settings.local.json from tracking
* Enhance abort handling in chain runners
- Added a manual test checklist section to CLAUDE.md for better QA processes.
- Improved abort handling in chain runners to ensure proper message management and logging.
- Updated the Chat component to retain the partial AI message during abort scenarios.
* Add todos for deprecated chain-related functionality and improve logging
- Marked several chain-related files and functions as deprecated due to the transition to direct chat model calls.
- Added TODO comments to indicate the need for future removal after verifying no dependencies remain.
- Enhanced logging by replacing console.error and console.warn with logError and logWarn for better error handling in chain runners.