Ownership and boundaries - Editor Extensions
This page provides clarity and a clear expectation between all parties who author/maintain features in editor extensions systems.
Context
Multiple groups contribute to features exposed through our editor extensions. This can create ambiguity regarding ownership and maintenance responsibilities. This document outlines an agreed-upon approach for consistent ownership attribution, aligning expectations and improving efficiency among all involved parties.
Owning a system part means being responsible for feature development, bug-fixes, and general maintenance of the affected part. Ideally, a team has maintainers in the system part they own to be more independent of the editor extensions team, but this is not a strict requirement.
System overview
Currently, the external features being integrated via our Editor Extensions follow this architecture:
- UI component built on gitlab-ui
- Integration with Editors: Webview
- Webview is a web page shown in the editor
- Integration with Editors: Business logic
- Business logic represents the editor-specific integration (e.g. TypeScript and VS Code Extension API, Kotlin and JetBrains Plugin API)
Legacy Ownership model
Currently used by Duo Chat:
System part | Group responsible |
---|---|
Chat UI component in gitlab-ui |
AI-Powered:Duo Chat group. |
VS Code - Chat Webview (web page) | AI-Powered:Duo Chat group with support from Create:Editor Extensions group |
VS Code - Chat business logic (extension) | Create:Editor Extensions group |
JetBrains - Chat Webview (web page) | AI-Powered:Duo Chat group with support from Create:Editor Extensions group |
JetBrains - Chat business logic (plugin) | Create:Editor Extensions group |
Ownership model for features implemented in Language Server
System part | Group responsible |
---|---|
UI Component | Group owning the UI component |
LS webview & plugin | Group owning the UI component with support from Create:Editor Extensions group |
VS Code integration | Create:Editor Extensions group |
JetBrains integration | Create:Editor Extensions group |
Visual Studio integration | Create:Editor Extensions group |
Process of notifying others
- When a team starts working on a feature that will require Editor Extensions support:
- PM/EM will notify Create:Editor Extensions group’s PM/EM - this allows the team to forecast the capacity necessary to support in the near future
- Feature implementation
- Legacy ownership model (Duo Chat implemented separately in all extensions)
- When the UI of the feature is ready:
- the authoring team opens an integration MR
- The Create:Editor Extensions group will assign an engineer to take over the MR and complete integration
- Language Server ownership model
- When the Language Server change is done, the feature team will notify Create:Editor Extensions group and they’ll integrate the language server change to the editor extensions.
- When the UI of the feature is ready:
- Legacy ownership model (Duo Chat implemented separately in all extensions)
Last modified August 19, 2025: Rename Duo Agent Platform team to Agent Foundations (
164a85fe
)