Draft: [skip ci] Remove v1 session credits ingestion, step 3 of 3: delete the worker classes

What does this MR do and why?

Release M+2 of the three-release worker removal for the v1 session credits sync. It is the last of the three stacked MRs.

  • Deletes Ai::DuoWorkflows::FetchSessionCreditsCronWorker and Ai::DuoWorkflows::FetchNamespaceSessionCreditsWorker with their specs.
  • Deletes the migration spec from the previous MR, because the workers it enqueues no longer exist. The migration file itself stays, as migrations are never removed; once the classes are gone its sidekiq_remove_jobs call resolves nothing and is a no-op, which is why it must have run in the release before this one.
  • Regenerates ee/app/workers/all_queues.yml and config/sidekiq_queues.yml. The queues cronjob:ai_duo_workflows_fetch_session_credits_cron and ai_duo_workflows_fetch_namespace_session_credits disappear.

Release gate

This MR stays Draft until release M+2, expected to be 19.9 if release M is 19.7. CI cannot enforce this gate.

  • Merge it one release after the previous MR's migration has run everywhere. Deleting the classes earlier turns that migration into a silent no-op, because sidekiq_remove_jobs resolves class names with safe_constantize and skips classes that no longer exist.
  • The namespace worker's concurrency-limit buffer is drained by a resume worker that also needs the class to exist, which is another reason not to delete early.
  • The same gates as the first MR apply: v2 rollout stable on GitLab.com and self-managed, v2 cutover merged, and v2 emitting duo_workflow_session_credits_fetch_failures_total.

See https://docs.gitlab.com/development/sidekiq/compatibility_across_updates/#removing-worker-classes. TrendingProjectsWorker was removed the same way across 19.1, 19.2 and 19.3.

References

Screenshots or screen recordings

Not applicable, backend only.

Before After

How to set up and validate locally

bin/rake gitlab:sidekiq:all_queues_yml:check gitlab:sidekiq:sidekiq_queues_yml:check
git grep -i 'FetchSessionCredits\|FetchNamespaceSessionCredits'

The git grep should return nothing.

Integration check

Verified on 2026-10-01 against master plus the v2 branch plus MRs A, B and C merged together, which is the state after step 3 ships. 1036 examples pass across the CustomersDot client, Workflow model, GraphQL type, cron initializer, settings, Backoff and repo-wide Sidekiq worker specs. Both queue registry checks, the GraphQL reference check, and the migration checksum and timestamp validators pass. A grep for every removed identifier returns nothing. Not verified locally: the GraphQL request specs, which cannot run outside CI, and the v2 worker path, which does not exist yet.

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.

Edited by Chandra Saripaka

Merge request reports

Loading
Loading