PII Masking Runs on Jev
Masked text is now read by one model, Jev, hosted by TypeSafe under a Business Associate Agreement with Captain. Requests and responses keep their shape. No change is needed on your side.
jevis the default engine:{"mask_pii": true}with nopii_engineis masked byjev. See Engines.kevkeeps working: a request that sends"pii_engine": "kev"is masked by Jev and reported asjev. The Kev model is no longer run.- Text is masked in parallel: a document's text no longer waits for a turn on a model with fixed capacity.
- Large PDFs: before, some large PDFs ran out of the 14-minute masking window and failed to index. Text masking no longer runs into that window.
- Rate limits are retried: when the model is rate limited, Captain waits and retries inside the masking window. A file that still cannot be masked fails to index, and nothing is stored unmasked. See Speed and reliability.
- The report says which model answered: in Get PII Report,
modelis the Jev model that masked the file. - Earlier engine names keep working:
captain-jevwith the booleanpii_fallbackis masked by Jev. Withpii_fallback: trueit still falls back tocaptain-presidiowhen the model cannot be reached. - One provider for masked text: text is sent to Jev at TypeSafe and nowhere else.
jev-openrouterandjev-ai-gatewayin apii_fallbacklist are accepted and ignored, andretry_budget_secondsstill sets how long Captain retries. See Fallback. - Image masking is unchanged: text inside image pixels is still found by OCR.