IFClite TypeScript API
    Preparing search index...

    Interface WatchdogInputs

    Watchdog for the geometry streaming pipeline.

    Two phases, two different right metrics:

    • First batch: scales with file size. On a 1 GB IFC the single-threaded pre-pass alone runs WASM for 30-60 s before the first geometry batch is emitted, and that scan time genuinely grows with bytes — so the deadline must too, or users on multi-GB files time out before anything renders.

    • Subsequent batches: a FIXED grace, deliberately NOT scaled by file size. Once geometry is flowing, the only silent window is the wall-time of a single synchronous processGeometryBatch call. That tracks geometric complexity per job (CSG density), which is uncorrelated with megabytes — dense steel packs far more CSG per MB than an extruded slab. The previous per-MB ramp measured the wrong thing and killed healthy loads on CSG-dense models (issue #1097: a ~275 MB steel model tripped its own 15 s + MB*30 = 23 s deadline mid-stream). The worker now bounds a single call to ~TARGET_BATCH_MS via adaptive batch sizing (see geometry.worker.ts), so this grace gives >10x headroom on realistic density while still flagging a genuinely wedged pool.

    Floors are at or above the previous fixed values so we never decrease a timeout relative to what shipped before (no regression on small/medium files).

    interface WatchdogInputs {
        batchCount: number;
        desktopStableWasm: boolean;
        fileSizeMB: number;
    }
    Index
    batchCount: number

    Number of geometry batches already received from the iterator.

    desktopStableWasm: boolean

    True when running the desktop-stable WASM path (faster pre-pass).

    fileSizeMB: number

    File size in megabytes. Use 0 if unknown.