another idea, do we just use the flag that comes from Admin Duo settings? Something like enable beta features?
@donaldcook here is the thread with them. I landed on this consent flow after thinking through w/ Glean if recording this in docs is enough.
The non-interactive is understandable problematic. wondering if there's a better workaround.
We're running an open beta for Duo CLI. Anyone can leave feedback here — whether you're a design partner or trying it out on your own.
What to include:
Thanks for helping us improve Duo CLI!
Duo CLI will be releasing to an open beta with ~10 design-partner accounts. Legal confirmed that it is an experimental/beta feature governed by the GitLab Testing Agreement, which requires an explicit user action (prompt or toggle) at enablement time — passive documentation is not sufficient.
Because Duo CLI runs on the developer's machine rather than being toggled from the GitLab web UI, we need an in-CLI consent step.
A user can install and run Duo CLI today without any explicit, in-product beta consent. This does not satisfy Legal's requirement.
Add a one-time, first-run consent prompt that:
y/Y before continuing — any other input exits with a non-zero status code.betaConsentAccepted: boolean flag in the existing config so the prompt is never shown again after acceptance.GitLab Duo CLI is an experimental/beta feature.
By continuing, you confirm that you have read and accept GitLab's Testing Agreement for
experimental and beta features, available under "Use of any experimental or beta feature"
in the Current Terms of Use:
https://about.gitlab.com/terms/#current-terms-of-use
Continue using Duo CLI beta? [y/N]:
y/Y → persist consent flag, proceed normally."Duo CLI beta requires accepting the Testing Agreement. Exiting without making any changes." and exit non-zero.betaConsentAccepted?: boolean to duoConfigurationSchema (or equivalent Zod schema), following existing naming conventions.cli_initialization_service.ts (or equivalent entry point), check the flag after config is loaded but before any other work. Show the prompt if missing or false; save true on acceptance.y input; persists consent and skips prompt on subsequent runs.betaConsentAccepted: false or missing: prompt is shown once.betaConsentAccepted: true: Duo CLI starts without showing the prompt.This change updates the documentation to clarify which versions of GitLab work with the Visual Studio Code extension. Instead of listing specific version numbers, it now explains that the extension officially supports only currently maintained GitLab versions (following GitLab's standard support policy). The update also reorganizes the requirements section to be clearer about what's needed for different features - like basic functionality, AI coding assistance, and security scanning - making it easier for users to understand what they need for the specific features they want to use.
Resolves #[issue_number]
src/browser or src/common has been modified, please consider interoperability with the Web IDE. See Running the Extension in WebIDE.
fix: Bug fix fixes - a user-facing issue in production - included in changelogfeature: New feature - a user-facing change which adds functionality - included in changelogBREAKING CHANGE: (fix or feature that would cause existing functionality to change) - should bump major version, mentioned in the changelog@donaldcook we need this addressed in 18.11, it prevents us from understanding where DAP requests are coming from. we can't tell the difference between DAP from Duo CLI, Editor Extensions, or Web. This should give us that.
The following section-level tracker issues have been created to map DoD coverage, gaps, and Q1 scope:
| # | Section | Issue |
|---|---|---|
| §1 | Discovery & Opt-In | #593781 |
| §2 | Setup & Configuration | #593782 |
| §3 | Onboarding & First-Time Experience | #593783 |
| §4 | Data Consent & Governance | #593784 |
| §5 | Day-to-Day Usage | #593785 |
| §6 | Observability & Trust | #593786 |
| §7 | Billing & Credits | #593787 |
| §8 | Troubleshooting & Support | #593788 |
| §9 | Telemetry & Product Analytics | #593789 |
GLQL Q1 Tracking View: #593790
Each section tracker includes a coverage table, gap analysis, and Q1 scope callouts. The tracking view issue (#593790) contains a live GLQL query rendering all 9 section trackers as a table.
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Parent work item: #589475 | .com GA target: End of April 2026
Check off each item when verified end-to-end in staging. The live table below each section shows the issues tracking that work.
display: table
fields: title, status, health, assignee, milestone
query: label = "GKG-Discovery" AND state = opened
display: table
fields: title, status, health, assignee, milestone
query: label = "GKG-Setup" AND state = opened
display: table
fields: title, status, health, assignee, milestone
query: label = "GKG-Onboarding" AND state = opened
display: table
fields: title, status, health, assignee, milestone
query: label = "GKG-Consent" AND state = opened
display: table
fields: title, status, health, assignee, milestone
query: label = "GKG-Usage" AND state = opened
display: table
fields: title, status, health, assignee, milestone
query: label = "GKG-Observability" AND state = opened
display: table
fields: title, status, health, assignee, milestone
query: label = "GKG-Billing" AND state = opened
display: table
fields: title, status, health, assignee, milestone
query: label = "GKG-Support" AND state = opened
display: table
fields: title, status, health, assignee, milestone
query: label = "GKG-Telemetry" AND state = opened
Parent work item: #589475
| User Story | Issue | Status |
|---|---|---|
| GitLab can understand how many accounts have GKG toggled on | &21189, #591558 |
|
| GitLab can understand DAU (Daily Active Users) | &21189, #591558 |
|
| GitLab can understand AI surface distribution of usage (CLI vs DAP vs MCP vs API %) | &21189, #591558 |
|
✅ No gaps. This section is well-covered by the telemetry epic (&21189) and #591558.
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Parent work item: #589475
| User Story | Issue | Status |
|---|---|---|
| Admin can find a troubleshooting guide mapping error states to resolution steps | #584169 |
|
| Support team has runbooks for: indexing failures, query errors, access issues, billing disputes |
&20992, |
|
| Escalation path from support to GKG engineering is defined and documented |
|
|
| Developer has a way to flag a bad or incomplete GKG-powered Duo response | #592436 |
|
⚠️ Three gaps — all need issues with Support team as DRI:
- Support runbooks — step-by-step guides for common KG failure modes
- Escalation path — formal L1→L2→Engineering escalation process
- Support team sign-off — explicit tracking issue for Support DRI approval before GA
Parent work item: #589475
| User Story | Issue | Status |
|---|---|---|
| Billing Owner can see GKG credit consumption in their GitLab account dashboard | #593192, #593191 |
|
| Billing Owner can see a breakdown of what triggered credit usage (queries vs. indexing) | #593190 |
|
| Billing Owner can access a billing event log with enough detail to verify or dispute charges | #593189 |
|
| Billing Owner understands how DAP-invoked queries differ from external API/MCP queries in credit consumption | #593188, #593194 |
|
⚠️ All items OOS for Q1. GA will launch without credit gating. Billing deferred to future milestone.
Parent work item: #589475
| User Story | Issue | Status |
|---|---|---|
| Admin can see GKG health status at a glance: Running / Indexing / Degraded / Off | #175, #591396 |
|
| Admin can see indexing progress per namespace and project |
|
|
| Admin can see a last-indexed timestamp per namespace | #591396 |
|
| Admin can see basic index statistics: projects, MRs, code symbols, languages indexed |
|
|
| Admin sees actionable error messages, not generic failures | #591905 |
|
| User Story | Issue | Status |
|---|---|---|
| Developer can see an indicator that GKG is enabled for their namespace | #591396 |
|
| Developer can see which languages and entity types are indexed for their projects |
|
|
| Developer can optionally see which GKG tools were called in an agent interaction |
|
|
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Parent work item: #589475
| User Story | Issue | Status |
|---|---|---|
| Developer can ask natural language questions about their codebase in DAP and get accurate answers | &21075 |
|
| Duo calls GKG tools automatically | &21075, #591558 |
|
| Developer receives noticeably better answers with GKG enabled vs. without (validated by evals) |
|
|
| Developer can ask cross-repository questions and get accurate answers | &21075 |
|
| Developer sees a human-readable message when GKG is still indexing (not a raw error) | #591397 |
|
| Duo falls back gracefully if GKG is unavailable — workflow is not fully broken |
#591905, |
|
| User Story | Issue | Status |
|---|---|---|
| Agent can call foundational graph tools | #178 |
|
| Agent only receives data the authenticated user is authorized to see | #178, #222 |
|
| User Story | Issue | Status |
|---|---|---|
| Opencode efficacy with/without Orbit | gitlab-org/orbit/knowledge-graph#317 |
|
| DAP efficacy with/without Orbit | gitlab-org/orbit/knowledge-graph#317 |
|
| Tool call reduction / token consumption / qualitative evals | gitlab-org/orbit/knowledge-graph#317 |
|
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Parent work item: #589475
| User Story | Issue | Status |
|---|---|---|
| Admin sees a consent flow before indexing begins covering what data is indexed and how |
&20248 (epic), |
|
| Admin consent is recorded with a timestamp for compliance audit purposes |
|
|
| Admin is clearly informed that indexing is global but search respects project-level RBAC | #222 |
|
| Security Officer can confirm users only see results they are authorized to access (Reporter+) | #222 |
|
| Security Officer can request GKG data deletion for their namespace | &20248 (epic) |
|
| Admin is notified if indexing scope changes and must re-consent |
|
|
⚠️ Three consent gaps need issues — compliance-critical:
- Consent UI flow — user-facing modal/flow at opt-in
- Consent timestamp recording — audit trail
- Re-consent trigger — re-prompt when data scope expands
Parent work item: #589475
| User Story | Issue | Status |
|---|---|---|
| New user sees a welcome guide or walkthrough on first GKG interaction | #589559, #584170 |
|
| Admin has access to a quick-start checklist covering setup, consent, and first query | #584170 |
|
| Developer can access sample queries or prompts to explore GKG capabilities | &21190 (docs epic) |
|
| New user understands what data types are searchable (code, MRs, issues, etc.) | &21190 (docs epic) |
|
| Developer receives a success confirmation after their first successful GKG query |
|
|
| Admin can share onboarding materials with their team | &21190 (docs epic) |
|
| Developer can access a "Getting Started" guide directly from the GKG-enabled interface | #233 |
|
⚠️ All items OOS for Q1. This section is fully deferred to a future milestone.
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Parent work item: #589475
| User Story | Issue | Status |
|---|---|---|
| Admin can enable GKG for their namespace with a single toggle | #588317, #591396 |
|
| Admin can disable GKG at any time; queries return a graceful "not available" state | #591396 |
|
| Admin can find the GKG settings page without hunting (clear navigation) | #588317 |
|
| Admin can scope which top-level namespaces are indexed | #591397 |
|
| Developer can connect an external agent (e.g. Claude Code) via MCP | #207 |
|
| Agent can be configured via a copy-paste setup prompt from GKG documentation |
|
|
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Parent work item: #589475
| User Story | Issue | Status |
|---|---|---|
| Admin can find GKG on their GitLab subscription or settings page | #588317 |
|
| Admin sees a pricing summary and Sales offer at point of opt-in | #584171 |
|
| Admin can start engage with Sales for a PoC |
|
|
| Billing Owner can see GKG as a line item in their GitLab account | #593194 |
|
| Developer can discover GKG is available via Duo chat or Orbit settings | #589559, #589476 |
|