@qtsurfer/api-client
    Preparing search index...

    Type Alias SweepProgress

    How far along a sweep is, and — when the sweep is still running — enough to tell a healthy one from a stuck one. The counts partition the shards (or, for a walk-forward sweep, the folds): every unit is either finished, failed, waiting to be retried, or not yet started.

    type SweepProgress = {
        aborted: number;
        done: number;
        etaSeconds?: number;
        failedShards: number;
        notStarted: number;
        pendingShards: number;
        retrying: number;
        shardCount: number;
        stalledSeconds?: number;
        total: number;
    }
    Index
    aborted: number

    Individual runs that executed and aborted. A row-level count: a shard that fails before producing any rows leaves this at 0, which is why failedShards exists alongside it.

    done: number
    etaSeconds?: number

    Rough seconds remaining, extrapolated from the rate observed so far and assuming nothing else competes for workers. Runs conservative in practice — it has measured 2–5× long when a sweep spent part of its life waiting to be retried, since that wait dilutes the observed rate. Omitted, never zero, when it cannot be computed: a sweep with nothing finished yet has no rate to extrapolate from, and a zero would read as "about to finish". Excludes queue wait entirely; retrying and stalledSeconds are where that shows up.

    failedShards: number

    Shards (or folds) that failed and will not be retried. Distinct from aborted: this counts whole units that never reported, not runs that ran badly.

    notStarted: number

    Units that have not reported anything yet. Covers both work still queued behind other work and work claimed by a worker that stopped before it began, which is why a sweep with a persistent value here and a rising stalledSeconds is worth looking at.

    pendingShards: number
    retrying: number

    Units whose last attempt failed on something transient — an I/O error, a worker that died mid-read — and which are queued to be attempted again. Not counted as failures, because they have not failed yet; a sweep with a non-zero value here is still expected to complete.

    shardCount: number
    stalledSeconds?: number

    Seconds since anything last advanced. Omitted on a finished sweep, where it would only measure how long ago it finished, and on sweeps submitted before this field existed.

    total: number