Remove the duo_workflow_incremental_checkpoints feature flag

What does this MR do and why?

Every new Duo Agent Platform session now stores incremental checkpoints, and the incremental_checkpoints server capability is always advertised. The duo_workflow_incremental_checkpoints flag has been enabled on GitLab.com since 2026-07-30 with no incidents, so this MR deletes it. Workflows created before this change keep using the legacy checkpoint path, since the column is a per-workflow snapshot and switching one mid-flight would break its checkpoint chain.

Design notes
  • The incremental_checkpoints_enabled column is a per-workflow snapshot, set once at creation. Workflows created before this change with the column false continue on the legacy checkpoint path; nothing re-evaluates them. This is intentional: incremental checkpoint blobs are deltas, and switching a workflow mid-flight would leave an unreconstructable chain.
  • No gateway (AI Gateway / Duo Workflow Service) change is needed. The gateway reads the column and the server capability, never the Rails flag.
  • The incremental_checkpoints server capability stays (it's not removed), because older gateway versions decide whether to send checkpoint blobs based on it.
  • Merging starts the 30-day window after which every live workflow has incremental_checkpoints_enabled = true, a prerequisite for #627332.
  • This is the first of three flag-removal MRs. Next are the read-gate flags, then duo_workflow_write_incremental_only.
  • Changelog: other, since the flag was already enabled and there's no user-facing behavior change.

References

Screenshots or screen recordings

No UI change.

How to set up and validate locally

  1. Open the GraphQL explorer at http://gdk.test:3000/-/graphql-explorer.
  2. Run the query { aiFlowsMetadata { capabilities { name } } }. Expect: the list includes incremental_checkpoints alongside job_trace_pagination and tool_call_approval_source, with no feature flag enabled.
  3. Optionally repeat with a namespace: { aiFlowsMetadata(namespaceId: "gid://gitlab/Group/<id>") { capabilities { name } } }. Expect: same result.
  4. Start a new Duo Agent Platform session from any project (for example via the Duo Agent Platform panel in the Web IDE or the project's Automate > Sessions page) or via the Duo CLI.
  5. In bin/rails console, run Ai::DuoWorkflows::Workflow.last.incremental_checkpoints_enabled. Expect: true.
Negative check

In bin/rails console, run Feature.enabled?(:duo_workflow_incremental_checkpoints). Expect: it raises, because the flag definition no longer exists (development and test environments raise on unknown flags).

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Merge request reports

Loading
Loading