Add Design Document for AI panel
Why is this change being made?
This merge request adds comprehensive documentation for GitLab's AI Panel feature - a side panel that houses various AI-powered tools like chat, history, and sessions. The documentation explains how the panel is designed as a flexible container that can dynamically load different AI applications without tightly coupling them together.
The key architectural decisions covered include: using Vue's dependency injection to configure chat components, integrating with Vue Router for navigation and deep linking, keeping the main panel agnostic about specific AI features it contains, and using Apollo Client's cache as the single source of truth for shared state management.
The documentation also details how permissions are handled across three layers (backend Rails, panel infrastructure, and individual AI apps), and how page context flows from the Rails backend through the panel to AI applications so they can provide relevant assistance based on what page the user is viewing.
The design aims to let different teams work on AI features independently while maintaining consistent behavior across the panel, though it notes current limitations where context passing only works reliably on work item pages rather than throughout GitLab.
Author and Reviewer Checklist
Please verify the check list and ensure to tick them off before the MR is merged.
-
Provided a concise title for this Merge Request (MR) -
Added a description to this MR explaining the reasons for the proposed change, per say why, not just what - Copy/paste the Slack conversation to document it for later, or upload screenshots. Verify that no confidential data is added, and the content is SAFE
-
Assign reviewers for this MR to the correct - The when to get approval handbook section explains when DRI approval is required
- The who can approve handbook section explains how to identify the DRI
- If the MR does not require DRI approval, consider asking someone on your team, such as your manager.
- The approver may merge the MR. If they approve but don't merge, you can merge.
-
For transparency, share this MR with the audience that will be impacted. -
Team: For changes that affect your direct team, share in your group Slack channel -
Department: If the update affects your department, share the MR in your department Slack channel -
Division: If the update affects your division, share the MR in your division Slack channel -
Company: If the update affects all (or the majority of) GitLab team members, post an update in #whats-happening-at-gitlab linking to this MR - For high-priority company-wide announcements work with the internal communications team to post the update in #company-fyi and align on a plan to circulate in additional channels like the "While You Were Iterating" Newsletter
-
Commits
- Add BP for AI panel