Conversation
When a queue is deleted, obliterate() previously wiped all its BullMQ jobs regardless of status. Pending jobs (waiting/delayed/active, both default and appeals) are now copied into the org's default queue before the source queue is obliterated, and the delete confirmation modal warns the user with the pending job count. Closes roostorg#1113. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rq5yzyBnSizpVMtWrHkBNb
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rq5yzyBnSizpVMtWrHkBNb
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context & Requests for Reviewers
Closes #1113.
Deleting an MRT queue called
queue.obliterate({ force: true }), whichsilently wiped every job in the queue regardless of status — waiting,
delayed, or actively being reviewed. Per the issue discussion and
@reitblatt's suggested approach,
this PR:
(or default appeals queue, for appeals queues) before the source queue is
obliterated, instead of deleting them.
job count and warn that those jobs will be moved rather than deleted.
Job migration is best-effort per job: if copying a particular job fails, the
failure is traced but queue deletion still proceeds (matching the existing
best-effort behavior around
obliterate()failures below it).Follow-ups called out in the issue — letting the user pick a different
destination queue, or configure an auto-action instead of always routing to
the default queue — are left for a later PR.
Tests
QueueOperations.test.ts: deletes anon-default queue containing pending jobs, asserts they land in the org's
default queue, and asserts the deleted queue's DB row and Bull queue are
both gone.
(cd server && npm run test:prepush -- services/manualReviewToolService/modules/QueueOperations.test.ts)— 18/18 passing.npx tsc --noEmitclean in bothserverandclient.npx eslintclean on all changed files.fixture for appeal-job payloads to cover it with an automated test.
(Optional) Rollout Plan
None — additive and backwards compatible. No migration or config changes
required.
Checklist
Only check items that apply to this PR; leave the rest unchecked.
If you changed anything user-facing (i.e. user interface or APIs):
Did you update related docs?
If the change is notable (refer to Keep a Changelog conventions):
Did you update CHANGELOG.md?
If you changed
server/models/**/{ContentTypeModel,ActionModel,RuleModel,PolicyModel}.ts:Did you update the corresponding history tables and their triggers?
If you changed
db/src/scripts/**and usedCREATE TABLE,ADD COLUMN, orALTER COLUMN:Are as many columns marked
NOT NULLas possible? If some columns can sometimes be null depending on other columns, are thereCHECKconstraints capturing those relationships, and are these also reflected using unions in the associated Kysely types?If you added a new signal in
server/services/signalsService/signals/**:Did you classify every error case as a permanent error (
SignalPermanentError, no retry) or a normal error (retryable)? Any case where the signal can't determine a score should be aSignalPermanentError.🤖 Generated with Claude Code