Summary
QuickFiler high-confidence mode stops a scan when the first-batch deadline expires and returns a non-empty partial batch immediately, even though fewer than the current screen's ItemsPerIteration messages qualified and more source messages remain. The regression affects the first screen and subsequent screens.
Environment
- OS/version: Windows 11; live Outlook desktop session
- Python version: n/a (C# / .NET Framework 4.8.1 VSTO add-in)
- Command/flags used: QuickFiler launched with
QfSettings.HighConfidenceModeEnabled = true
- Data source or fixture: Outlook folder with sparse messages above the configured confidence threshold; the observed form displayed seven or eight items per screen
Steps to Reproduce
- Enable QuickFiler high-confidence mode with a threshold that few available messages meet.
- Launch QuickFiler against a folder where the current form size yields an
ItemsPerIteration value of seven or eight.
- Let the first high-confidence scan evaluate many candidates. In the observed run it scanned nearly 40 messages and accepted one before the deadline expired.
- Observe that QuickFiler returns and displays that one accepted message instead of continuing until the requested screen count is satisfied or the source is exhausted.
- File the displayed messages and advance to later screens; the same partial-return behavior can recur.
Expected Behavior
QuickFiler must use the current form's ItemsPerIteration value as the requested high-confidence batch size. It must continue dequeuing, scoring, and discarding below-threshold candidates until it has collected that many qualifying messages or it has genuinely exhausted the available source. This contract must apply to the initial screen and every subsequent screen.
Actual Behavior
QfcStreamingDequeueConfidenceGate.DequeueAsync returns its current accepted list when DefaultFirstBatchDeadline expires, even when accepted.Count is greater than zero but less than quantity and _sourceActive() indicates that more messages remain. The initial QfcHomeController.RunAsync path and later QfcHomeController.IterateQueueAsync path both use deadline-bearing dequeue calls, so either path can surface an undersized screen without source exhaustion.
Logs / Screenshots
Impact / Severity
High: the mode violates its page-fill contract and can require repeated undersized screens while qualifying messages remain. The behavior affects normal use of high-confidence mode and contradicts the completed issue #233 streaming-backfill acceptance criteria.
Source
From: docs/features/potential/2026-08-25-quickfiler-high-confidence-partial-screen-backfill.md
Summary
QuickFiler high-confidence mode stops a scan when the first-batch deadline expires and returns a non-empty partial batch immediately, even though fewer than the current screen's
ItemsPerIterationmessages qualified and more source messages remain. The regression affects the first screen and subsequent screens.Environment
QfSettings.HighConfidenceModeEnabled = trueSteps to Reproduce
ItemsPerIterationvalue of seven or eight.Expected Behavior
QuickFiler must use the current form's
ItemsPerIterationvalue as the requested high-confidence batch size. It must continue dequeuing, scoring, and discarding below-threshold candidates until it has collected that many qualifying messages or it has genuinely exhausted the available source. This contract must apply to the initial screen and every subsequent screen.Actual Behavior
QfcStreamingDequeueConfidenceGate.DequeueAsyncreturns its currentacceptedlist whenDefaultFirstBatchDeadlineexpires, even whenaccepted.Countis greater than zero but less thanquantityand_sourceActive()indicates that more messages remain. The initialQfcHomeController.RunAsyncpath and laterQfcHomeController.IterateQueueAsyncpath both use deadline-bearing dequeue calls, so either path can surface an undersized screen without source exhaustion.Logs / Screenshots
Impact / Severity
High: the mode violates its page-fill contract and can require repeated undersized screens while qualifying messages remain. The behavior affects normal use of high-confidence mode and contradicts the completed issue #233 streaming-backfill acceptance criteria.
Source
From: docs/features/potential/2026-08-25-quickfiler-high-confidence-partial-screen-backfill.md