Summary
QfcHomeController.IterateQueueAsync treats an empty dequeue result as proof that the mail source is exhausted and irreversibly closes the QuickFiler UI queue. Since issue #424 introduced a first-batch deadline on the underlying dequeue, an empty result can now mean "the deadline expired" rather than "no items remain", so a slow high-confidence scan can close the queue for the rest of the session while items are still available.
Environment
- OS/version: Windows 11 Pro 10.0.26200
- Python version: n/a (C# / .NET Framework 4.8 VSTO add-in)
- Command/flags used: QuickFiler launched from the TaskMaster ribbon with
QfSettings.HighConfidenceModeEnabled = true
- Data source or fixture: Live Outlook mailbox with a low proportion of items above the confidence threshold, so scoring is slow relative to the deadline
Steps to Reproduce
- Enable High Confidence mode with a threshold that few messages clear.
- Launch QuickFiler against a folder large enough that scoring a batch exceeds the first-batch deadline.
- File the first batch so
IterateQueueAsync runs for the next batch.
- Observe whether further batches are ever presented.
Expected Behavior
An empty batch caused by a scan deadline should leave the queue open so later iterations can continue supplying items. The queue should be closed only when the mail source is genuinely exhausted.
Actual Behavior
The empty result routes to QfcQueue.CompleteAddingAsync, which calls BlockingCollection.CompleteAdding(). That operation is irreversible, so no further items can be enqueued for the remainder of the session even though unscanned items remain.
Logs / Screenshots
Impact / Severity
High: in High Confidence mode with a low-yield folder the user can be denied the remainder of their queue for the session, with no error shown and no way to recover short of relaunching QuickFiler.
Source
From: docs/features/potential/2026-08-07-iteratequeueasync-deadline-closes-queue-early.md
Summary
QfcHomeController.IterateQueueAsynctreats an empty dequeue result as proof that the mail source is exhausted and irreversibly closes the QuickFiler UI queue. Since issue #424 introduced a first-batch deadline on the underlying dequeue, an empty result can now mean "the deadline expired" rather than "no items remain", so a slow high-confidence scan can close the queue for the rest of the session while items are still available.Environment
QfSettings.HighConfidenceModeEnabled = trueSteps to Reproduce
IterateQueueAsyncruns for the next batch.Expected Behavior
An empty batch caused by a scan deadline should leave the queue open so later iterations can continue supplying items. The queue should be closed only when the mail source is genuinely exhausted.
Actual Behavior
The empty result routes to
QfcQueue.CompleteAddingAsync, which callsBlockingCollection.CompleteAdding(). That operation is irreversible, so no further items can be enqueued for the remainder of the session even though unscanned items remain.Logs / Screenshots
Impact / Severity
High: in High Confidence mode with a low-yield folder the user can be denied the remainder of their queue for the session, with no error shown and no way to recover short of relaunching QuickFiler.
Source
From: docs/features/potential/2026-08-07-iteratequeueasync-deadline-closes-queue-early.md