feat: queue-management implementation (#211)#304
feat: queue-management implementation (#211)#304rubenvdlinde wants to merge 13 commits intodevelopmentfrom
Conversation
…to feature/211/queue-management
Quality Report — ConductionNL/pipelinq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ❌ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 249/249 | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ❌ |
Spec coverage: 14% (42 tests / 298 specs)
Quality workflow — 2026-04-20 20:14 UTC
Download the full PDF report from the workflow artifacts.
| * | ||
| * @version GIT: <git_id> | ||
| * | ||
| * @link https://github.com/ConductionNL/pipelinq |
There was a problem hiding this comment.
[unfixed: inherited from base] phpcs reports missing @spec PHPDoc tag on several pre-existing background job classes (KennisbankReviewJob, ComplaintSlaJob, EmailSyncJob and others visible in the truncated quality-runner output). These are not in the changed-file scope of this PR. The three NEW PHP files in this PR (QueueOverflowJob, QueueService, DefaultQueueService) all carry proper @spec tags. Inherited debt cannot be bound-fixed in this pass.
Rule: PHPCS @SPEC tag requirement — ADR-008
| @@ -51,6 +55,8 @@ public function __construct( | |||
| * @param string $queueId The queue UUID. | |||
| * | |||
There was a problem hiding this comment.
[unfixed: check-not-run — phpunit failure excerpt missing] The pre-run quality suite reports phpunit FAILING but captured no excerpt ("No excerpt captured — see pipeline log for detail"). The test files tests/Unit/Service/QueueServiceTest.php and tests/Unit/BackgroundJob/QueueOverflowJobTest.php exist on the branch and use proper mocking patterns. Without the failure excerpt, the root cause cannot be diagnosed or fixed in this pass. The next retry cycle should surface the full phpunit output.
Rule: ADR-008 — all production-code changes require passing unit tests
Code Review — Juan Claude van DammeResult: FAIL (0 fixed, 2 unfixed, 2 blocking) Gate Summary
Changed-file findingslib/BackgroundJob/QueueOverflowJob.php — Clean. Proper EUPL-1.2 header, lib/Service/QueueService.php — Clean. Proper headers, lib/Service/DefaultQueueService.php — Clean. Same quality as QueueService. Constants and seed data match spec. Both public methods documented with openspec/ files — Spec artefacts only; no code quality requirements apply. Unfixed findings
See inline comments for per-finding detail. |
Security Review — Clyde BarcodeResult: FAIL (0 fixed, 2 unfixed WARNING, 0 blocking in diff) Scans run on changed files
Findings in changed PHP filesNone. The three PHP changes ( Notes on the code reviewed for completeness:
Pre-existing npm vulnerabilities (not introduced by this PR)These were already flagged by the pre-run quality gate (cycle 2 hydra.json, npm-audit: fail). Not in the diff; cannot apply inline comments. Requires a dedicated dependency-update PR.
Verdict is FAIL because these two WARNINGs are unfixed. The Applier should note these are pre-existing and unrelated to this PR's diff before making go/no-go decision. Clyde Barcode · Hydra Security Reviewer · Conduction B.V. |
Closes #211
Summary
Implements queue-management feature for Pipelinq, enabling priority-ordered work queues with overflow handling and skill-based routing. Backend services handle queue operations, capacity checks, and automatic overflow routing to configured overflow queues. Added required PHPDoc @SPEC tags to all new classes and public methods for traceability.
Spec Reference
openspec/changes/queue-management/design.mdChanges
lib/Service/QueueService.php— Queue operations service with capacity checks, overflow routing, and item assignmentlib/BackgroundJob/QueueOverflowJob.php— Background job that periodically checks queue capacities and moves overflow itemslib/Service/DefaultQueueService.php— Service for creating default queues and skills during repair/initializationappinfo/info.xml— Registered QueueOverflowJob background jobTest Coverage
tests/Unit/Service/QueueServiceTest.php— Unit tests for QueueService covering getQueueDepth, isAtCapacity, assignToQueue, removeFromQueuetests/Unit/BackgroundJob/QueueOverflowJobTest.php— Unit tests for QueueOverflowJob covering overflow execution and configuration scenarios