From a423a9467c3ef8d879708a9b3148972a69b783ba Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 15 Aug 2026 17:01:40 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=A6=8B=20New=20version=20release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/rust-pii-hashing.md | 25 ------------------------- packages/core/CHANGELOG.md | 26 ++++++++++++++++++++++++++ packages/core/package.json | 2 +- 3 files changed, 27 insertions(+), 26 deletions(-) delete mode 100644 .changeset/rust-pii-hashing.md diff --git a/.changeset/rust-pii-hashing.md b/.changeset/rust-pii-hashing.md deleted file mode 100644 index 6cc4d46..0000000 --- a/.changeset/rust-pii-hashing.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -'@smooai/observability': minor ---- - -Rust: PII is now hashed rather than passed through. `pii::scrub_string` handled -credentials only — `Bearer`, `password=`, `token`/`api_key`/`secret=`, `sk-…` — -while the module doc claimed PII scrubbing, so an email or phone in a message, -breadcrumb or GenAI tool argument reached the wire intact. - -Emails, phone numbers and street addresses are now detected and replaced with a -keyed token: `a@b.com` → `[email:9f2a41c8]`. HMAC-SHA256, not a bare digest — -those values are a small enumerable space a rainbow table reverses in seconds — -and the org id is mixed into the message so identical PII hashes differently in -different orgs. The type prefix stays visible, which keeps "are these two spans -the same person?" answerable while storing nothing reversible. - -Credentials are still **dropped**, never hashed: a hash of a live token is a -token oracle. With no key configured (`SMOOAI_OBSERVABILITY_PII_HASH_KEY`, or -`pii::set_pii_hash_key`), personal identifiers are fully redacted rather than -hashed under a guessable key. - -New: `pii::scrub_string_for_org`, `pii::scrub_headers_for_org`, `pii::pii_token`, -`pii::PiiKind`, `pii::set_pii_hash_key`, `BootstrapEnv::pii_hash_key`. -`scrub_string` / `scrub_headers` keep their signatures and now scrub personal -identifiers too, under the empty org salt. diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 62ad88f..c776c3b 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,31 @@ # @smooai/observability +## 0.15.0 + +### Minor Changes + +- 5648be2: Rust: PII is now hashed rather than passed through. `pii::scrub_string` handled + credentials only — `Bearer`, `password=`, `token`/`api_key`/`secret=`, `sk-…` — + while the module doc claimed PII scrubbing, so an email or phone in a message, + breadcrumb or GenAI tool argument reached the wire intact. + + Emails, phone numbers and street addresses are now detected and replaced with a + keyed token: `a@b.com` → `[email:9f2a41c8]`. HMAC-SHA256, not a bare digest — + those values are a small enumerable space a rainbow table reverses in seconds — + and the org id is mixed into the message so identical PII hashes differently in + different orgs. The type prefix stays visible, which keeps "are these two spans + the same person?" answerable while storing nothing reversible. + + Credentials are still **dropped**, never hashed: a hash of a live token is a + token oracle. With no key configured (`SMOOAI_OBSERVABILITY_PII_HASH_KEY`, or + `pii::set_pii_hash_key`), personal identifiers are fully redacted rather than + hashed under a guessable key. + + New: `pii::scrub_string_for_org`, `pii::scrub_headers_for_org`, `pii::pii_token`, + `pii::PiiKind`, `pii::set_pii_hash_key`, `BootstrapEnv::pii_hash_key`. + `scrub_string` / `scrub_headers` keep their signatures and now scrub personal + identifiers too, under the empty org salt. + ## 0.14.0 ### Minor Changes diff --git a/packages/core/package.json b/packages/core/package.json index 19f90ba..2773766 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@smooai/observability", - "version": "0.14.0", + "version": "0.15.0", "description": "Smoo AI Observability SDK — OTel-first error capture, traces, metrics, and React/Next.js integrations in a single package with subpath exports", "homepage": "https://github.com/SmooAI/observability", "bugs": {