Skip to content

Latest commit

 

History

History
106 lines (72 loc) · 4.51 KB

File metadata and controls

106 lines (72 loc) · 4.51 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.5.0] — 2026-05-30

Added

  • armos-ner-en model — Armos now ships with a custom-trained NER model (armos-ai/en_armos_ner) built specifically for Indian and Western PII detection. Downloaded automatically on first use (~450 MB, cached at ~/.cache/armos/models/).
  • ADDRESS detection — Physical address detection (Indian and Western) now powered by armos-ner-en NER. Covers flat/house/plot formats with locality, city, and PIN; US/UK street addresses with postcode. 100% detection rate across 10,000 samples.
  • huggingface_hub added as a core dependency for model download and caching.

Changed

  • Indian name detection: 96.4% → 99.4% (+9.1% vs en_core_web_lg baseline) across 10,000 samples.
  • Western name detection: 99.7% across 10,000 samples.
  • OpenAI sk-proj- API keys now detected — regex updated to cover the newer key format alongside the classic sk- prefix.
  • First-run download experience improved: clear [armos] messages explain what is downloading and why. Subsequent runs load from cache silently.
  • ADDRESS entity boundary resolution improved — partial overlaps (< 50% of shorter span) no longer cause adjacent entities (e.g. AADHAAR) to be dropped.

Fixed

  • GitHub personal access tokens (ghp_) now detected for tokens longer than 36 characters.

[1.3.0] — 2026-05-28

Added

  • Streaming demasking — OpenAI (chat.completions) and Anthropic (messages) wrappers now transparently demasked PII tokens in streaming responses. Tokens split across multiple chunks are buffered and reassembled before demasking.
  • Uncertain PII detectionMaskResult.uncertain exposes entities that scored below the masking threshold (0.35) but above a near-miss floor (0.1). These are surfaced for inspection without being masked.

Fixed

  • Added click>=8.0.0 as an explicit dependency. typer>=0.12 dropped click as a hard requirement, causing ModuleNotFoundError on CI when spaCy's CLI tried to import it.

[1.2.1] — 2026-05-14

Added

  • Redis vault now supports TLS (rediss://) connections via certifi for CA bundle verification.
  • certifi>=2024.0.0 added to the redis and all extras.

[1.2.0] — 2026-05-12

Added

  • Auto-download of en_core_web_lg spaCy model on first use — no manual spacy download required.
  • CONTRIBUTING.md with setup, testing, and PR guidelines.

[1.1.0] — 2026-05-10

Changed

  • Dropped Python 3.9 support; minimum version is now Python 3.10.
  • Added GitHub Actions CI running tests across Python 3.10, 3.11, and 3.12.

[1.0.1] — 2026-05-08

Added

  • Detection accuracy benchmarks across all supported entity types (NAME, EMAIL, PHONE, AADHAAR, PAN, CARD, IP, APIKEY, SSN, IBAN).

[1.0.0] — 2026-05-07

Added

  • SSN detection — US Social Security Numbers (e.g. 371-53-1234).
  • IBAN detection — International Bank Account Numbers (e.g. GB29NWBK60161331926819).
  • OpenAI Responses API maskingclient.responses.create(...) is now protected.
  • Embeddings maskingclient.embeddings.create(...) masks PII before the vector is generated.
  • QUICKSTART.md and TROUBLESHOOTING.md guides.

[0.1.7] — 2026-04-28

Changed

  • Redis store API refactored to explicit store="redis" + redis_url= parameters (breaking change from earlier implicit config).
  • System hint automatically injected into the LLM context when PII is detected, reminding the model to preserve tokens verbatim.

[0.1.1] — 2026-04-20

Changed

  • Enriched PyPI package metadata (classifiers, keywords, URLs).

[0.1.0] — 2026-04-18

Added

  • Initial release.
  • Core PII masking via Presidio + spaCy en_core_web_lg.
  • Supported entities: NAME, EMAIL, PHONE, AADHAAR, PAN, CREDIT CARD, IP ADDRESS, API KEY.
  • MemoryVault (default, ephemeral) and RedisVault (optional, customer-owned).
  • Deterministic token format [PII:TYPE:8hexhash] — same value always maps to the same token.
  • Case-normalised deduplication — john smith / John Smith / JOHN SMITH all produce the same token.
  • MaskResult with .text, .entities, .has_pii, and .uncertain.
  • OpenAI chat.completions wrapper (ArmosOpenAI).
  • Anthropic messages wrapper (ArmosAnthropic).