Language pack edition gate — Hebrew and English stay free.
he) now require LocalMask Pro. A clear upgrade notice is printed when a gated pack is requested without a license, and detection falls back to free packs (he, en) automatically.Expanded PII detection and 9th language pack (India).
dob:, birth_date:, birthday:, birth_day:)cvv:, cvc:, security_code:, atm_pin:, card_pin:, pin_number: (3–6 digits)expiry:, exp_date:, card_expiry:, valid_thru: (MM/YY and MM/YYYY)passport:, passport_no:, passport_number:national_id:, civil_id:, voter_id:, tax_id:, resident_id:, and morelatitude: / longitude: or bare lat: / lon:?api_key=, ?token=, ?session_token=, ?refresh_token=, ?oauth_token=, and morevin:, chassis:, frame_no: (17-char, case-sensitive format guard)plate:, license_plate:, car_plate:, car_reg:LOCALMASK_LANGS default changed from all to none — opt in per language to avoid unexpected FPs. Set LOCALMASK_LANGS=he,ru or all.labeled_customer_id extended with order, invoice, booking, reservation, contract, reference, ticket, transaction, case keywordsprefixed_customer_id extended with ORD-, INV-, TXN-, TKT-, BKG-, CASE-, REF-Detection precision release: −48% false positives on the 11-repo test suite, detection rate held at 99%.
pk_live_ / pk_test_ are public by design; only sk_live_ / sk_test_ are sensitiveno-reply@, notifications@, GCP service-account domains, and similarpostgresql://host/db (no @) excluded from all patternsAC + 32 hex are public identifiers, not secretsjdbc:postgresql://host/db no longer flaggedunquoted_env_secret — minimum length raised 8 → 10; $, (, ) excluded; now detects env vars inside Python/YAML stringssmtp.gmail.com, AKIAIOSFODNN7EXAMPLE, test-jwt-secret-not-for-production, and othersbitcoin_address — length range tightened to avoid 40-char git SHA collisions[rel/path/to/file] to distinguish test fixtures from production configspk_live_, Twilio Account SID, test-conftest password, doc placeholder, bare JDBC URL)netpolicy.py was missing from the free wheel; importing cli or licensing raised ImportError/license?session_id webhook — caches the issued key against the Stripe checkout-session ID so the post-purchase page can display it immediatelylocalmask ask and ask_about_scan MCP tool require an active Pro license and return a clear upgrade message on FreeLicensing, distribution, and CI/editor integrations. Detection engine unchanged from 0.9.2.
localmask scan --fail-on-detection — exit non-zero when a secret or PII is found; gates commits and CI runs.pre-commit-config.yaml in four lines; blocks commits that contain secretssgury/[email protected]) — fails a pull request that introduces a secret; runs 100% locally on the runnerlocalmask proxy setup — one command points Claude Code, Cursor, Codex, or any AI tool at the local masking proxy Prolocalmask check-updates — opt-in update check; scanning stays fully offline.pyc; fixes Python-version fragility and lets you review every line that runs on your codetoken / bucket / relative). Off by default. Enable with LOCALMASK_MONEY_MODE=relativelocalmask feedback and a contact address ([email protected])