Enable background processing
Pass--queue-interval with the number of seconds between scans:
Queue options
| Flag | Description | Default |
|---|---|---|
--queue-interval <secs> | Seconds between background scans | disabled |
--queue-concurrency <num> | Max items processed in parallel | 2 |
--queue-history-ttl <secs> | How long to keep completed items in history | 3600 |
--max-queue-items <num> | Max items to enqueue per scan (0 = unlimited) | 500 |
Filter which sessions get processed
Useapp.queueCondition() to skip sessions during background scanning. This only affects the background scanner - UI-triggered runs are unaffected.
cacheable option
| Value | Behavior |
|---|---|
false (default) | Re-evaluated every scan cycle. Use for time or external-state dependent logic. |
true | Result cached per session. Auto-invalidates when the session file or condition function changes. |
app.queueCondition() and app.condition() can both be set. queueCondition filters sessions before they enter the queue; app.condition() runs again when each item executes. See Conditions for details.How priority works
Every eval and enrichment - whether triggered from the UI or the background scanner - goes through the same unified queue:- HIGH priority: UI requests (opening a session, clicking Re-run)
- LOW priority: background scanner items
- HIGH items always process before LOW items
- If the same item is enqueued twice, it’s upgraded to the higher priority

