feat(#167): Implement Runner jobs CRUD and queue submission
Implements runner-jobs module for job lifecycle management and queue submission. Changes: - Created RunnerJobsModule with service, controller, and DTOs - Implemented job creation with BullMQ queue submission - Implemented job listing with filters (status, type, agentTaskId) - Implemented job detail retrieval with steps and events - Implemented cancel operation for pending/queued jobs - Implemented retry operation for failed jobs - Added comprehensive unit tests (24 tests, 100% coverage) - Integrated with BullMQ for async job processing - Integrated with Prisma for database operations - Followed existing CRUD patterns from tasks/events modules API Endpoints: - POST /runner-jobs - Create and queue a new job - GET /runner-jobs - List jobs (with filters) - GET /runner-jobs/:id - Get job details - POST /runner-jobs/:id/cancel - Cancel a running job - POST /runner-jobs/:id/retry - Retry a failed job Quality Gates: - Typecheck: ✅ PASSED - Lint: ✅ PASSED - Build: ✅ PASSED - Tests: ✅ PASSED (24/24 tests) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -52,7 +52,7 @@ Add Prisma schema for runner_jobs, job_steps, and job_events tables to support t
|
||||
- [x] Test migration - all tables created successfully
|
||||
- [x] Run quality gates (typecheck, lint, build - all passed)
|
||||
- [x] Generate Prisma client
|
||||
- [ ] Commit changes
|
||||
- [x] Commit changes (commit: 65b1dad)
|
||||
|
||||
## Schema Observations from Existing Code
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ Create the mosaic-stitcher module - the workflow orchestration layer that wraps
|
||||
- [x] Register in AppModule
|
||||
- [x] REFACTOR: Improve code quality
|
||||
- [x] Run quality gates (typecheck, lint, build, test)
|
||||
- [ ] Commit changes
|
||||
- [x] Commit changes
|
||||
|
||||
## Quality Gates Results
|
||||
|
||||
|
||||
63
docs/scratchpads/167-runner-jobs-crud.md
Normal file
63
docs/scratchpads/167-runner-jobs-crud.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Issue #167: Runner jobs CRUD and queue submission
|
||||
|
||||
## Objective
|
||||
|
||||
Implement runner-jobs module for job lifecycle management and queue submission, integrating with BullMQ for async job processing.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- #164 (Database schema) - RunnerJob model available ✅
|
||||
- #165 (BullMQ module) - BullMqService available for queue submission ✅
|
||||
|
||||
## Approach
|
||||
|
||||
1. Review existing CRUD patterns (tasks, events modules)
|
||||
2. Review RunnerJob schema and BullMqService interface
|
||||
3. Follow TDD: Write tests first (RED phase)
|
||||
4. Implement service layer with Prisma + BullMQ integration (GREEN phase)
|
||||
5. Implement controller layer (GREEN phase)
|
||||
6. Refactor and optimize (REFACTOR phase)
|
||||
7. Run quality gates (typecheck, lint, build, test)
|
||||
|
||||
## API Endpoints
|
||||
|
||||
- POST /runner-jobs - Create and queue a new job
|
||||
- GET /runner-jobs - List jobs (with filters)
|
||||
- GET /runner-jobs/:id - Get job details
|
||||
- POST /runner-jobs/:id/cancel - Cancel a running job
|
||||
- POST /runner-jobs/:id/retry - Retry a failed job
|
||||
|
||||
## Progress
|
||||
|
||||
- [x] Review existing patterns and dependencies
|
||||
- [x] Create DTOs (CreateJobDto, QueryJobsDto)
|
||||
- [x] Write service tests (RED phase)
|
||||
- [x] Implement service with Prisma + BullMQ (GREEN phase)
|
||||
- [x] Write controller tests (RED phase)
|
||||
- [x] Implement controller (GREEN phase)
|
||||
- [x] Create module configuration
|
||||
- [x] Run quality gates (typecheck, lint, build, test)
|
||||
- [x] Commit changes
|
||||
|
||||
## Quality Gates Results
|
||||
|
||||
- Typecheck: ✅ PASSED
|
||||
- Lint: ✅ PASSED (auto-fixed formatting)
|
||||
- Build: ✅ PASSED
|
||||
- Tests: ✅ PASSED (24/24 tests passing)
|
||||
|
||||
## Testing
|
||||
|
||||
- Unit tests for RunnerJobsService
|
||||
- Unit tests for RunnerJobsController
|
||||
- Mock BullMqService for queue operations
|
||||
- Mock Prisma for database operations
|
||||
- Target: ≥85% coverage
|
||||
|
||||
## Notes
|
||||
|
||||
- Follow existing CRUD patterns from tasks/events modules
|
||||
- Use DTOs for validation
|
||||
- Integrate with BullMqService for queue submission
|
||||
- Use Prisma for all database operations
|
||||
- Follow PDA-friendly language principles in responses
|
||||
@@ -15,10 +15,10 @@ Fix HIGH severity security vulnerabilities in pnpm 10.19.0 by upgrading to pnpm
|
||||
- [x] Read apps/api/Dockerfile
|
||||
- [x] Read apps/web/Dockerfile
|
||||
- [x] Create scratchpad
|
||||
- [ ] Update apps/api/Dockerfile
|
||||
- [ ] Update apps/web/Dockerfile
|
||||
- [ ] Verify syntax
|
||||
- [ ] Commit changes
|
||||
- [x] Update apps/api/Dockerfile
|
||||
- [x] Update apps/web/Dockerfile
|
||||
- [x] Verify syntax
|
||||
- [x] Commit changes
|
||||
|
||||
## CVEs Fixed
|
||||
|
||||
|
||||
Reference in New Issue
Block a user