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_enabledcolumn is a per-workflow snapshot, set once at creation. Workflows created before this change with the columnfalsecontinue 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_checkpointsserver 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
- Open the GraphQL explorer at
http://gdk.test:3000/-/graphql-explorer. - Run the query
{ aiFlowsMetadata { capabilities { name } } }. Expect: the list includesincremental_checkpointsalongsidejob_trace_paginationandtool_call_approval_source, with no feature flag enabled. - Optionally repeat with a namespace:
{ aiFlowsMetadata(namespaceId: "gid://gitlab/Group/<id>") { capabilities { name } } }. Expect: same result. - 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.
- In
bin/rails console, runAi::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.