feat(copilot): introduce session management for AI interactions #1890
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Checklist
If you have any questions, you can refer to the Contributing Guide
What is the current behavior?
Currently, the Copilot component handles both UI interactions and session management responsibilities, violating the single responsibility principle. This makes the codebase harder to maintain, test, and extend as the functionality grows.
Issue Number
What is the new behavior?
Refactored the codebase to separate concerns by:
Creating a dedicated
SessionManager
class that handles all session-related logic including:Modified the Copilot component to use the new SessionManager, focusing it solely on UI interactions and user experience.
Properly defined interfaces and types to ensure type safety throughout the application.
Does this PR introduce a breaking change?
Specific Instructions
The refactoring improves the code structure but maintains the same functionality. When testing, please verify that all existing Copilot features continue to work correctly.
Other information
This refactoring brings several benefits: