Add write-incremental-only checkpoint feature flag
What does this MR do?
Introduces the duo_workflow_write_incremental_only feature flag (wip, default off).
When it is enabled for a workflow that already writes incremental checkpoints
(incremental_checkpoints_enabled), CreateCheckpointService stops shadow-writing the
legacy full checkpoint row (p_duo_workflows_checkpoints) and persists only the slim
header (p_duo_workflows_checkpoint_headers) and blobs (p_duo_workflows_checkpoint_blobs).
This removes the duplicate write once the incremental read path is live, so the database
size stops growing and begins to decrease via the 30-day TTL.
The flag is evaluated live (not snapshotted like incremental_checkpoints_enabled): blobs
are always written when incremental checkpoints are enabled and the full row is
self-contained, so toggling it mid-flight is safe — no delta chain depends on the full row.
Rollout ordering (read path must be live first) is handled operationally through the feature flag, not in code.
Changelog
Not required: the change is behind a default-off feature flag and has no user-facing effect until the flag is enabled.
References
- Feature issue: #607008
- Feature flag rollout: #607029
- Epic: gitlab-org#22628