v3.2.0 — reliable resumable bulk-scan
Reliable, resumable runtime bulk scanning on the SDK 0.13.2 async API.
New
- Configurable bulk scanning —
airs runtime bulk-scan --batch-size <n>(default 25). Logical batches run sequentially; each SDK call is capped at 20 prompts. - Item-level resumable state — every prompt retains its input index,
req_id, status, receipt, and result. State dir/files are0700/0600since they contain prompt text. airs runtime resume-poll <stateFile>— safely continue an interrupted job.- Documented input format + starter files at
examples/bulk-scan/(.txtone-per-line,.csvwith apromptcolumn).
Fixed
- One input prompt → exactly one correctly correlated output row (
(scan_id, req_id), input order). - Actions are exactly
allow,block, orfailed(no phantom ALERT). Failed/timed-out rows preserved; exit 1 on any failure. - Idempotent resume — accepted receipts polled, only pending items resubmitted, CSV atomically replaced (no duplicate rows).
- Overlapping jobs rejected via per-state lock with dead-process recovery.
- Ambiguous POST outcomes (network / 5xx) fail closed — never auto-resubmitted.
- Bounded polling — stops after 120 consecutive no-progress polls.
Dependencies
- Requires
@cdot65/prisma-airs-sdk0.13.2 or later.
Full details: docs-site Release Notes.