Use semantic versioning for foundational flow references in FoundationalFlow model
## Problem The `Ai::Catalog::FoundationalFlow` model in `ee/app/models/ai/catalog/foundational_flow.rb` identifies flows via `foundational_flow_reference` values using a coarse format referencing the flow registry version (not the flow version) e.g., `"code_review/v1"`, `"fix_pipeline/v1"`. Now that the AI Gateway (Duo Workflow Service) has implemented proper semantic versioning for flow config files (see gitlab-org/modelops/applied-ml/code-suggestions/ai-assist#1577), GitLab Rails has no way to indicate which specific semantic version of a flow config it wants to use. This means all consumers are pinned to whatever the DWS resolves as the latest, with no ability to pin to a version range or roll back safely. ## Desired Outcome The `foundational_flow_reference` values and the related `workflow_definition` passed to `StartWorkflowService` are updated to use semantic version identifiers, aligning with the new `flowVersion` and `flowConfigId` gRPC parameters introduced on the DWS side. This allows GitLab Rails to explicitly control which flow config version is used, enabling safe rollouts, gradual migrations, and rollbacks without affecting all consumers at once. This depends on support for these parameters being implemented in the CLI in https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/work_items/2266 ## References - DWS semantic versioning implementation: gitlab-org/modelops/applied-ml/code-suggestions/ai-assist#1577 - `ee/app/models/ai/catalog/foundational_flow.rb` - `ee/app/services/ai/duo_workflows/start_workflow_service.rb`
issue