{
"issueNumber": 459,
"branchName": "feat/459-bullmq-migration",
"generatedAt": "2026-04-13T12:00:00Z",
"stories": [
{
"id": "S1",
"title": "Remove SqliteJobQueue and wire BullMQJobQueue in QueueModule",
"priority": 1,
"dependsOn": [],
"acceptanceCriteria": [
"SqliteJobQueue class and spec files deleted",
"QueueModule provides BullMQJobQueue as JOB_QUEUE token",
"index.ts exports BullMQJobQueue instead of SqliteJobQueue",
"No import errors in queue module"
],
"passes": false,
"completedAt": null
},
{
"id": "S2",
"title": "Remove JobEntity from database layer and all consumer modules",
"priority": 2,
"dependsOn": [
"S1"
],
"acceptanceCriteria": [
"job.entity.ts deleted",
"JobEntity removed from database.module.ts entities array",
"JobEntity removed from entities/index.ts",
"JobEntity removed from operational.module.ts, control-api.module.ts",
"JobEntity removed from all spec files that import it for TypeORM setup",
"database.module.spec.ts job creation test removed"
],
"passes": false,
"completedAt": null
},
{
"id": "S3",
"title": "Adapt jobs controller and operational endpoints to use BullMQ queue introspection",
"priority": 3,
"dependsOn": [
"S2"
],
"acceptanceCriteria": [
"jobs.controller.ts queries BullMQ queue instead of JobEntity repo",
"operational.controller.ts job-related endpoints updated or removed",
"Corresponding spec files updated and passing"
],
"passes": false,
"completedAt": null
},
{
"id": "S4",
"title": "Update E2E tests and clean up config",
"priority": 4,
"dependsOn": [
"S3"
],
"acceptanceCriteria": [
"test/job-queue.e2e-spec.ts tests BullMQJobQueue with real Redis",
"JOB_QUEUE_DRIVER removed from config schema and .env.example if present",
"npm run lint passes with zero warnings",
"npm run test passes",
"npm run build succeeds",
"grep -r SqliteJobQueue src/ returns zero results"
],
"passes": false,
"completedAt": null
}
]
}