A chronological record of notable changes to the PasskeyBridge platform. Follows Keep a Changelog conventions.
v1.39.16
Removed copy that claimed FIPS 204 conformance, alignment or compliance.
FixedThe whitepaper, the SDS, the pitch page, the Trust Center and the Solutions compliance matrix said the post-quantum signing was aligned with, compliant with or deployed as NIST FIPS 204. The signatures use the ML-DSA-65 and ML-DSA-87 algorithms from FIPS 204, but the ML-DSA keys are derived with HMAC-SHA-256 from a server-held master key, not generated from a fresh random seed as FIPS 204 key generation specifies. The copy now says that, and the compliance matrix lists FIPS 204 as Partial.
v1.39.15
The Agents dashboard no longer shows the Trust model panel, whose values the trust engine never read.
RemovedThe Trust model panel on the Agents tab, including its decay-rate slider, signal penalties and thresholds. It saved those values in the browser only, and the trust engine never read them. Values it saved are cleared from the browser when the Agents tab opens. Scope narrowing still follows the organization's trust ladder.
v1.39.14
Corrected the DPoP descriptions on the whitepaper, Terms, Security and SDS pages, and the agent trust descriptions that said trust decays with time.
FixedCorrection to v1.23.0 (April 26, 2026), which is left as published: that entry ties a 15-minute re-attestation cadence and a shadow_degraded tier to DPoP shadow telemetry. DPoP binds a token to a client-held key and applies no re-attestation interval. The 15-minute cadence and the shadow_degraded tier belong to the separate re-attestation service for sessions, agents and API keys. The whitepaper, Terms of Service section 2, the Security page and the SDS now say so.
FixedThe Solutions page, three blog posts and the agent delegation dashboard described agent trust or the A2A trust coefficient as decaying with time. Nothing decays with time: a delegate's score changes when the trust engine evaluates new activity, and a negotiation's coefficient is computed once, at negotiation, and changes only through a new attest and negotiate. The recovery_rate recorded on each negotiation is not applied. The copy now says so.
v1.39.13
Spatial binding keys the user digest with HMAC-SHA-256 under a server-held pepper before it is stored.
SecuritySpatial binding keys the user_hash the integrating organization sends with HMAC-SHA-256 under a server-held pepper before it is stored. It stored the value as sent before. A baseline enrolled before the change still matches, and a DSAR request naming the digest the organization sent still finds the rows.
v1.39.12
Device identifiers and the User-Agent stored with SDK integrity attestations are keyed with HMAC-SHA-256 under a server-held pepper.
SecuritySpatial binding keys the device identifier digest the SDK sends with HMAC-SHA-256 under a server-held pepper before it is stored or written to the audit log. It stored the unkeyed SHA-256 digest as sent before. A device enrolled before the change still matches its baseline.
SecuritySDK integrity attestation keys the User-Agent header the same way. It stored an unkeyed SHA-256 digest before. The origin is still stored as a SHA-256 digest: it names the website, not a person.
v1.39.11
A confirmed guardian can start account recovery for a locked-out owner, and completion emails that owner a one-time sign-in link.
AddedA recovery guardian confirms from the link in the invitation by entering the invited address. An account is created for that address when one does not already exist. A confirmed guardian can start a recovery for the owner they guard.
AddedWhen enough guardians approve, the owner receives a one-time sign-in link. The link is not stored. Passkeys stay registered. A pending recovery expires 72 hours after it is created.
v1.39.10
BLAST can mix ML-KEM-768 into a session when the client sends an encapsulation key, and an allowlisted relying party checks the FIDO metadata table.
Addedblast_init accepts an optional ML-KEM-768 encapsulation key. The server encapsulates, mixes that shared secret with the X25519 secret, and derives the tunnel key. A client that omits the key stays on X25519. A runtime that cannot run ML-KEM-768 refuses the hybrid init and does not fall back.
SecurityWhen a hosted relying party sets an authenticator allowlist, registration, assertion and import require a FIDO MDS3 table of contents whose chain verifies to the pinned root. An authenticator the table lists as revoked is refused. An authenticator the table does not list stays on the allowlist. A table that cannot be verified refuses the ceremony.
v1.39.9
Enterprise relying parties can require hardware-bound passkeys: synced credentials refused and only listed authenticator models accepted.
AddedAn opt-in credential policy on each hosted relying party: require_device_bound refuses backup-eligible (synced) credentials at registration, at assertion and at import, and aaguid_allowlist asks the authenticator for direct attestation and admits only the listed models. Both are off by default; nothing changes for a relying party that does not opt in.
AddedTurning a policy on reports how many credentials already stored under the relying party it would refuse at their next assertion, so the switch is thrown with its effect in view. Nothing is deleted.
v1.39.8
A polish pass over the dashboard: every tab on one shell, visible keyboard focus, and fewer small frictions.
ChangedThe Audit log, Webhooks and API docs tabs use the same header, loading, error and empty states and the same row layout as every other tab. A failed load shows the error card with a retry instead of a message over an empty list.
ChangedKeyboard focus is visible on every navigation control, the search button, event rows and code-block copy buttons; a tab opens at the top of the page; a copy button confirms the copy inline and announces it to screen readers.
FixedA playbook row no longer shows an empty badge or a bare version mark when a field is missing, and a team member row no longer shows an invalid date.
FixedThe Observability tiles and latency panel, the Insider threat summary and the Threat sharing status no longer take the whole tab down when a load answers without its data: the tab shows its error card with a retry, or reads sharing as off.
v1.39.7
User verification is required on every passkey ceremony, in the hosted relying party and on the dashboard.
SecurityThe hosted relying party requires user verification: registration and authentication options ask the authenticator for a biometric or a PIN, and a response without the user-verification flag is refused with reason user_not_verified. The check runs on every ceremony, so it covers credentials enrolled or imported before this date.
ChangedDashboard passkey options ask for user verification as required rather than preferred. The server already refused an assertion without it, so an authenticator that cannot verify the user is now turned away by the browser instead of failing at the server.
v1.39.6
Business prospecting is described in the Privacy Policy, and every outreach email says where the address came from.
AddedPrivacy Policy section 6a describes business prospecting: what we hold about a prospect, that it comes from Apollo.io, the legitimate-interest basis, who receives it, how long it is kept and how to object. The lawful-basis list now says outreach to professionals rests on legitimate interest and the newsletter on consent; it had said marketing email was opt-in only.
AddedEvery outreach email's footer carries the GDPR Article 14 notice: where the address came from, the legal basis, how to object, and a link to the section above.
ChangedA prospect record is deleted 24 months after our last email by a daily job, and an unsubscribe clears every identifying column but the address, which is kept so that we never write to that person again.
v1.39.5
Signal events are purged 90 days after they are written, and the hash chain records the purge.
ChangedSignal events are deleted 90 days after they are written, on every plan, by a daily job; the plan cards no longer name a 7-day or a 2-year retention. The first run deleted 316 events older than 90 days on October 1, 2026.
SecurityA change the platform itself makes to a hash-chained row is recorded in the chain as an amendment written in the same transaction; the chain verifier reports what an amendment explains apart from tampering, and a change without one still reads as tampering.
v1.39.4
The last unkeyed identifier digests are keyed in place.
SecurityEvery identifier digest stored before August 1, 2026 as an unkeyed SHA-256, and every digest a tenant had sent already hashed and stored as sent, was keyed in place under the server-held pepper on October 1, 2026, and a table constraint refuses a new one. No stored identifier digest remains an unkeyed SHA-256.
ChangedReads match the keyed digest, the previous pepper's digest during a rotation window, and the legacy digest keyed in place; the unkeyed form is no longer looked up.
v1.39.3
Corrections to six earlier entries, which are left as published.
FixedCorrection to v1.29.0 (May 25, 2026): SOC 2 evidence-request contact details are encrypted with pgcrypto's OpenPGP symmetric encryption under a key held in the managed secrets vault, not with AES-256-GCM.
FixedCorrection to v1.37.0 (September 8, 2026) and v1.21.0 (April 11, 2026): a playbook webhook's first delivery attempt is made inside the ingest request and carries the HMAC signature only. Since September 11, 2026 a failed attempt is retried by the queue worker, and those retries carry the detached ML-DSA headers; before that date nothing placed tenant deliveries on the queue, so every tenant webhook was delivered inline.
FixedCorrection to v1.6.0 (March 13, 2026): mldsa-wasm is a WebAssembly build of mldsa-native, not of the PQClean reference implementation. The sub-millisecond signing figure in that entry is removed.
FixedCorrection to v1.1.0 (December 9, 2025): encrypted fields use AES-256-GCM under a single platform key, not tenant-scoped keys.
FixedCorrection to v1.0.0 (November 1, 2025): until August 1, 2026 identifiers were stored as unkeyed SHA-256 digests, which can be reversed by enumerating the phone-number keyspace. Since then the platform keys them with HMAC-SHA-256 under a server-held pepper, and since September 18, 2026 a digest a tenant sends already hashed is keyed the same way before it is stored. On October 1, 2026 the digests stored before those dates were keyed in place (v1.39.4).
v1.39.2
Correction to an earlier entry about the Purpose-Bound PII Vault.
FixedCorrection to v1.11.0 (March 28, 2026), which is left as published: that entry says a tenant-isolated BYOK model enables cryptographic erasure via key deletion. The product does not work that way. Vault ciphertext is AES-256-GCM under a single platform key, bring-your-own-key covers tenant signing keys only, and erasure is performed by the data subject request path, which nulls the subject's identifier columns and overwrites their encrypted columns. The Privacy Policy and Terms of Service were corrected the same day.
v1.39.1
Create an account with a sign-in link.
AddedSign up by email link: a new account can be created by requesting a sign-in link instead of setting a password. The organisation name is carried through, and the same bot check applies.
v1.39.0
Provenance Guard's kinematic channel now reads orbital elements from Space-Track.org, the USSPACECOM publication channel, propagates them to the moment the device took its reading, and can choose the satellite itself.
AddedSpace-Track.org is the primary source of the satellite catalog, refreshed hourly, with CelesTrak as an automatic backup that takes over if Space-Track goes quiet for three hours and steps back when it returns. Catalog rows older than 24 hours are refused and the request path never fetches an upstream itself, so a missing or stale catalog fails the channel closed.
ChangedKinematic Handshake (NTN) accepts observed_at, the time the device measured the Doppler shift, and propagates the ephemeris to that instant rather than to the verdict instant. A reading more than 120 seconds old or more than 5 seconds in the future is refused. Verdict thresholds are unchanged.
AddedServer-issued satellite: with a per-tenant setting, off by default, the challenge names the satellite the device must observe, so the caller no longer chooses the geometry or the element set.
SecurityQuorum attestations gain a version 2 payload that binds the observation epoch under the senior device's ML-DSA-65 signature; version 1 payloads verify exactly as before.
ChangedSubject identifier digests preserve case (hash version 3), so two subjects that differ only by letter case no longer share a digest. Existing digests remain readable; no re-issue is needed.
v1.38.2
@passkeybridge/vc-wallet-sdk 0.6.0: holder keys the wallet's own scripts cannot read out, stricter holder binding, and a more complete Presentation Exchange matcher.
SecurityHolder private keys are non-extractable CryptoKeys in the SDK's own storage backends, so script in the wallet's origin can sign with them but never read them out; keys written as exportable JWKs by earlier releases are locked on first read. The IndexedDB database is namespaced by tenant, two wallet instances can no longer orphan each other's records by racing on the wallet key, plaintext rows from before at-rest encryption are re-encrypted on first read, and the SDK never follows an HTTP redirect.
ChangedA credential is only treated as holder-bound when its cnf names the key the wallet sent, on issue and on OID4VCI redemption; a different credential under an id already held is refused unless replaced explicitly; verified is true only for a literal true; apiKey is optional for the status, metadata and redemption calls that never needed one. The Presentation Exchange matcher reconstructs SD-JWT claims from disclosures, includes ancestor disclosures in a presentation, applies contains to one element, compares constants structurally, backtracks across descriptors, and refuses two more regular-expression shapes built to backtrack.
Fixedpersist: false kept no holder keys; a failed key store on issue passed as success; redemption with autoStore: false discarded its key; an empty disclosure frame skipped binding; the request timeout stopped at the headers; multibyte claims decoded as mojibake; two credentials imported in one millisecond shared an id; remove and clearAll reported a wipe that had not happened.
v1.38.1
The satellite catalog behind the radar and the Provenance Guard kinematic channel is refreshed on a schedule and served from a durable copy.
ChangedThe catalog is pulled every four hours within CelesTrak's published rate limits and kept as a durable copy; the radar and the kinematic channel read that copy and nothing in the request path fetches an upstream.
v1.38.0
@passkeybridge/vc-wallet-sdk 0.5.0 is on npm, with the SDK documentation aligned to the published package.
Changed@passkeybridge/vc-wallet-sdk 0.5.0 published 2026-09-12. redeemOffer() sends the access token it exchanges the pre-authorized code for with the credential request. The OID4VCI holder proof omits iss for the pre-authorized code flow, as OpenID4VCI section 7.2.1 requires, and createOid4vciProof() takes an options object. package.json, PBWallet.version and the User-Agent header now report one version.
SecurityThe SDK's Presentation Exchange matcher bounds verifier-supplied regular expressions: patterns over 512 characters, patterns with nested quantifiers, and values over 4096 characters are refused rather than matched, so a hostile presentation definition can no longer pin a wallet at full CPU.
ChangedThe /sdk page and the dashboard SDK tab document the shipped surface: local encrypted wallet, SD-JWT-VC holder binding, OID4VCI and batch verification, with result shapes, the default base URL and the scope names matching the package (lifecycle writes need vc_revoke; there is no vc_status scope).
DeprecatedhashPhone() in the SDK is documented as deprecated: it is an unkeyed SHA-256 that does not match the platform's keyed identifier hash and is reversible by enumeration over the phone keyspace. Send the raw E.164 number to ingest and let the server key it.
v1.37.0
Everything that crosses a trust boundary now carries a post-quantum signature, and everything that stays inside is hash-chained under one. Webhooks and Security Event Tokens gain a detached ML-DSA proof beside their existing signature; the audit log and event log are chained and checkpointed with ML-DSA every five minutes, anchored to the NIST Randomness Beacon; and the hosted passkey relying party can mint a hybrid-signed session attestation on request. None of it touches the ingest decision path.
SecurityOutbound webhooks carry a detached ML-DSA (FIPS 204) signature over the exact request body in x-pb-pqc-* headers, under your tenant's DID-published #mldsa-1 key, beside the existing HMAC. Present whether or not a callback secret is configured; the delivery log records the key id used.
SecurityOutbound Security Event Tokens (SSF/CAEP push) carry the same detached ML-DSA proof over the JWS signing input, in the same headers, next to the tenant ES256 or ES384 signature. Receivers that verify the JWS alone are unaffected.
AddedHash-chained audit and event logs: every row is linked at commit into an append-only ledger that has no foreign keys, so a purged tenant's rows show as a marked gap rather than vanishing. A checkpoint every five minutes signs the chain heads (HMAC-SHA-256 plus ML-DSA-65), anchors them to the latest NIST beacon pulse, and re-verifies the ledger since the previous checkpoint, writing a chain.integrity_violation audit row on any break. Latest checkpoint and public key: GET /v1/shield-chain-checkpoint.
AddedHosted passkey relying party: new attest_session action returns a hybrid-signed attestation (ES256 or ES384 JWS plus detached ML-DSA over the same signing input) that a credential was verified here, with its counter and verification time, under the tenant's own keys. Requested after login, never on the login path.
ChangedThe platform DID document publishes the checkpoint ML-DSA key as #chain-checkpoint-mldsa-1, so checkpoints verify against the document alone.
v1.36.0
Billing hardening: failed payments now change entitlement in a predictable way, a stale Checkout can no longer create a second subscription, Starter is one organization per account, and the edge rate-limit ceiling is aligned with the plan limits. The dormant onboarding drip sender was removed.
ChangedDunning: a failed renewal keeps your plan active while Stripe retries (past_due) and shows an in-app banner with an update-card action. Once retries are exhausted (unpaid), paid features pause with a 402 payment_required response and ingest continues at the Starter allotment; access restores automatically when the open invoice is paid.
SecurityCheckout re-entry: creating a new Checkout expires any earlier open session for the organization and every session lives 31 minutes. If a duplicate subscription is still completed, the webhook cancels it, refunds any charge, and alerts the operator.
ChangedStarter is one organization per account. Existing organizations are unchanged; a second Starter organization needs a paid plan.
ChangedRate limits: the per-source-IP edge ceiling is 1,200 requests per minute with a 60 second block. On every plan except Enterprise Dedicated, whose limit equals the ceiling, the per-organization limit is the one you reach first.
ChangedThe account setup page names the plan and price on its billing action and states the trial conditionally, since trial eligibility is decided from Stripe history.
RemovedThe onboarding drip email sequence. Transactional product email is unaffected.
ChangedThe /unsubscribe page stops newsletter email only. Transactional product email (alerts, billing, security) is unaffected, as before.
v1.35.0
Provenance Guard co-presence: the quorum channel gains new ways to confirm a trusted device is present, an NFC tap and Wi-Fi/cell co-observation. An additive evolution of the existing channel, behind the same per-tenant flag, with the three-channel logic unchanged.
AddedQuorum Attestation adds an NFC proximity protocol: a tap between two enrolled devices, with the same post-quantum signature bound to the live challenge nonce plus a round-trip timing bound as relay defense.
AddedNew Wi-Fi and cell co-observation protocols confirm that the subject device and a trusted senior device saw the same network landmarks within a short window. This establishes the same coarse area, not a measured distance, so it corroborates a verdict and does not stand alone unless a tenant opts in.
SecurityEvery observed BSSID and cell identity is keyed-hashed (HMAC-SHA-256) server-side before any comparison; raw network landmarks are never stored or logged. Only a shared-landmark count is retained.
ChangedPer-tenant controls for co-presence: whether Wi-Fi/cell may satisfy the quorum channel on its own, the minimum shared landmarks, and the co-observation window. All default to the safe, corroborating-only behavior.
v1.34.0
Provenance Guard hardening: the kinematic channel now checks the observed Doppler against live orbital ephemeris, and quorum attestations now require a verified post-quantum signature. Both are Enterprise capabilities, enabled per tenant, with the prior behavior unchanged until opt-in.
AddedKinematic Handshake (NTN) now compares the observed Doppler shift against an expected value derived server-side from a live CelesTrak TLE propagated with SGP4, for the satellite and observer bound at challenge time. The expected value is never accepted from the caller.
SecurityQuorum Attestation now requires a valid ML-DSA-65 (FIPS 204) signature from the attesting senior device, verified against a public key captured at enrollment and bound to the live challenge nonce. Missing, tampered, wrong-key, and replayed attestations fail closed.
ChangedDevice enrollment captures the device's ML-DSA-65 public key. Devices enrolled without one do not contribute a quorum vote until a key is rotated in.
AddedPer-tenant control for the hardened verification path; the existing verdict behavior is unchanged until a tenant enables it.
v1.33.0
SOC 2 wording aligned with the Trust Center, a public unsubscribe page, and keyed digests in place of identifier fields in Okta, SCIM and admin audit metadata.
ChangedPublic programme copy now matches the Trust Center: readiness, evidence under review. Overclaim phrases on public surfaces fail the copy linter.
SecurityPlaybook email_alert no longer treats a string recipients field as a send list, which previously skipped the tenant-member allowlist. Recipients must be an array; anything else is skipped.
AddedPublic /unsubscribe confirmation page. Marketing email carries the physical postal address and an unsubscribe link.
SecurityOkta hook metadata stores no alternateId or displayName and a hashed session-start IP. SCIM provisioning logs store keyed HMAC-SHA-256 digests of userName, displayName, externalId and member, never the raw request body. Admin audit metadata records no operator email.
v1.32.0
Continuous synthetic monitoring of the product path, and a self-check of the monitoring layer.
AddedA synthetic probe exercises the site, the app, the docs and the API surface every 15 minutes with latency and status budgets, so a regression on the product path is raised independent of user traffic.
AddedAn hourly self-check verifies that the monitoring layer itself is reporting, so a silent failure of monitoring is raised rather than hidden.
v1.31.5
Scheduled-job health is read from the scheduler itself.
ChangedScheduled-job health reporting is taken from the scheduler's own run records, so the status operators see reflects actual runs.
v1.31.0
VC Wallet SDK v0.4.0 published to npm, CAEP outbound transmitter live, scheduled-job configuration guard and pre-rotation checklist added.
Added@passkeybridge/vc-wallet-sdk v0.4.0 published to the public npm registry. Breaking: engines bumped to Node >= 20.19. Test runner moved to vitest ^4.1.8 with a postcss shim and test type-narrowing; full dependency refresh. NPM provenance attestation is temporarily disabled pending OIDC Trusted Publisher onboarding.
AddedCAEP outbound transmitter (shield-sse-deliver) is live. Queued events are drained on a scheduled cadence, signed as ES256 Security Event Tokens, and pushed to subscribed receivers per RFC 8935, completing the bidirectional CAEP path alongside the existing receiver.
AddedScheduled-job configuration guard: the daily sweep flags any scheduled job whose credential reference does not resolve, so a misconfigured job is reported rather than failing silently.
AddedPre-rotation checklist (npm run check:pre-rotation). Four hard gates (env vars present, sb_secret_ prefix shape, live PostgREST 200, shield-health database ok) block any API key rotation while the legacy credential is still authoritative.
v1.30.0
Knowledge Hub editorial pass continues, internal operations observability sharpened, and the VC Wallet SDK test matrix verified across all supported Node runtimes.
ChangedKnowledge Hub editorial quality pass extended to the next batch of published articles: every internal and outbound link re-verified, factual claims audited against shipped code and primary sources, on-page SEO and GEO metadata refreshed, and mobile and desktop renders re-validated. Thirty-six articles have now been through the full pass.
AddedInternal operations dashboards now refresh on a 60-second polling cadence with visibility-aware pause and an immediate re-fetch on tab refocus, giving on-call operators a near-live read on outbound campaign health without manual reloads.
Changed@passkeybridge/vc-wallet-sdk continuous-integration matrix re-verified end-to-end across Node 18, 20, and 22 on Ubuntu, with the full storage, presentation, and wallet test suites passing under each runtime. Lockfile resolution tightened so the matrix build is reproducible from a clean checkout.
v1.29.0
SOC 2 evidence intake hardened with vault-keyed encryption at rest, and the daily codebase sweep now enforces continuous SECURITY DEFINER grant integrity.
SecurityContact details submitted through the public SOC 2 evidence-request form (requester name and work email) are now encrypted at rest using AES-256-GCM under a per-platform key held in the managed secrets vault. Decryption is gated through dedicated admin-only RPCs and the notification path; no other surface can read the plaintext.
ChangedThe send-contact-form and SOC 2 notification edge functions were refactored onto the new encrypted-intake RPCs and redeployed without any change to the public submission API.
SecurityThe daily codebase sweep now runs a SECURITY DEFINER grant-integrity check that asserts the curated allowlist of database functions retains only the EXECUTE grants required for row-level security chaining, admin UIs, and trigger plumbing. Any drift fails the sweep and is surfaced in the engineering inbox.
v1.28.0
Knowledge Hub editorial pass on the first 15 published articles, daily-sweep reliability hardening, and a developer-playground CTA in outbound communications.
ChangedEditorial quality pass completed on the first 15 published Knowledge Hub articles: every internal and outbound link verified, factual claims audited against shipped code and primary sources, on-page SEO and GEO metadata refreshed, and mobile and desktop renders re-validated.
ChangedDaily codebase sweep workflow hardened against scheduler drops with a backup cron trigger 30 minutes after the primary run and an idempotency gate that prevents duplicate sends when both triggers fire.
AddedOutbound prospect communications now include a 'Test the API' call-to-action linking to the public /developers/playground page so prospects can ping a live verification endpoint and model their own cost delta before any sales conversation.
v1.27.0
Tenant dashboard upgrade: onboarding telemetry, in-app notifications, team and support surfaces, and tablet navigation.
AddedOnboarding telemetry across all five guided wizards with a tenant-facing Onboarding tab and an admin-facing completion-rate widget so retention drop-off is now measurable.
AddedPer-tenant in-app notification bell with realtime delivery, severity icons, unread badge, and mark-as-read controls.
AddedWorkspace surfaces inside the dashboard: a Team tab for admins to manage members and roles, and a Support tab for opening and viewing tickets without leaving the product.
AddedTenant-scoped Billing tab summarising current plan, usage limits, and upgrade paths, with empty-state guidance for new tenants.
AddedReusable empty-state component on every previously-empty dashboard tab to nudge new tenants toward the next configuration step.
ChangedMobile and tablet navigation: dashboard now uses the grouped bottom-sheet hamburger pattern below 1024px, eliminating the cramped two-tier strip on tablets in the 768–1023px range.
SecurityNew tenant-scoped notification, wizard-event, and audit-log surfaces are protected by row-level security and limited to authenticated tenant members and admins.
v1.26.0
Edge WAF and rate-limit policy fully codified, API-reconciled, and continuously drift-checked.
AddedServer-side reconciler that enforces the codified WAF and rate-limit policy against the upstream edge provider, replacing manual dashboard edits as the deployment path.
AddedCI integrity gate that fails the build if the canonical policy declaration, the bundled reconciler copy, and the nightly drift snapshot are not byte-identical, preventing partial or split-brain rollouts.
SecurityContinuous drift detection in the daily codebase sweep compares live edge policy against the committed snapshot and surfaces any divergence as a finding, closing the 'someone changed it in the dashboard' gap.
RemovedRetired the optional remote orchestration token surface that had been provisioned for an alternative reconciliation path; the live operational path uses a single scoped credential.
v1.25.0
Knowledge Hub editorial polish: per-article social metadata, searchable index, reading progress, and prerendered share previews.
AddedPer-article Open Graph and Twitter Card metadata so shared blog links render the correct title, description, and hero image across social platforms and chat clients.
AddedBuild-time prerender for blog routes ensures crawlers and link unfurlers receive route-correct SEO tags on first byte, without waiting for client-side hydration.
AddedSearchable Knowledge Hub index with keyword search and topic filters for faster article discovery.
AddedReading progress indicator on article pages, anchored to the article body rather than full-page scroll for accurate progress feedback.
ChangedSitemap generation continues to run on every build and now includes all published articles alongside marketing routes; robots.txt advertises the canonical sitemap location.
ChangedWeb Vitals diagnostics (LCP, CLS) instrumented for non-production environments only, behind a strict host gate so the diagnostic surface is never exposed to public visitors.
FixedBuilt-asset compliance and bundle-budget gates updated to accommodate new editorial assets without relaxing brand-exposure or size guarantees.
v1.24.0
Frontend performance program: route-level prerender, lazy dashboard shell, per-article code-splitting, and Vite 6 toolchain.
AddedBuild-time per-route prerender of marketing pages with route-specific SEO and Open Graph tags, improving first contentful paint and crawler fidelity for the landing, pricing, and related routes.
ChangedDashboard shell now lazy-loads onboarding wizards and the command palette gated on user intent, reducing the initial shell payload by 87% (139KB to 18KB gzipped).
ChangedKnowledge Hub articles split into per-slug modules with import.meta.glob so each article ships as its own chunk, reducing initial article-route weight.
AddedOnboarding wizards persist non-sensitive draft fields to localStorage so users can resume in-progress configuration; secrets and credentials are excluded by design.
ChangedBuild toolchain advanced to Vite 6 with PostCSS 8.5 for faster dev startup and modern plugin compatibility.
v1.23.0
Operational observability: cross-tenant anomaly detection, CAEP cascade automation, and tenant quotas with egress controls.
AddedPlatform-wide infrastructure anomaly scanner monitoring traffic surges, error-rate spikes, latency regressions, egress volume, cascade depth, and tenant-concentration anomalies, with Slack alerting on threshold breach.
AddedCAEP (Continuous Access Evaluation Profile) receiver now dispatches in-process revocation cascades for hard signals via the shared signal mapper, closing the loop between inbound CAEP events and downstream session termination.
AddedPer-tenant request quotas enforced at the edge, replacing reliance on global infrastructure limits and providing per-tier predictability for Starter through Dedicated plans.
AddedEdge egress allowlist via safeFetch helper, restricting outbound HTTP from edge functions to approved destinations and blocking SSRF and data-exfiltration vectors at the network boundary.
AddedDPoP (RFC 9449) shadow telemetry channel through the api-key-auth chokepoint with 15-minute re-attestation cadence and a shadow_degraded tier surfaced in tenant posture views.
Addedshield-ingest dead-letter audit trail records usage-RPC retry failures to shield_audit_log so under-billing and ingest-side regressions surface in the admin dashboard rather than failing silently.
v1.22.0
Trust, billing, and supply-chain safety net: canary mesh, billing health alerter, and the daily codebase sweep.
AddedHoneypot canary endpoints distributed across the edge surface, recording probe attempts to shield_canary_hits and dispatching SSRF-guarded Slack alerts when scanners or unauthorized clients touch them.
AddedBilling health alerter (shield-billing-alerter) emitting Slack and email alerts on tenant provisioning failures and unbilled-usage backlog, including top-offender drill-down with the oldest unbilled timestamp per tenant for fast triage.
Changedshield-usage-billing now auto-skips unbilled rows for exempt, internal, or unsubscribed tenants, marking them as reported so the queue cannot accumulate phantom backlog.
AddedDaily codebase sweep (5pm ET) aggregating compliance, bundle-size, edge-function health, audit, and memory-index checks with consolidated HTML report and email delivery to the engineering inbox.
ChangedStripe usage-reporting pipeline made fully idempotent across the billing window with atomic row-claiming, eliminating double-count risk under retry pressure.
v1.21.0
Infrastructure hardening: P-256 ECDSA signing keys, per-tenant rate limits, async webhook delivery, key rotation grace period, and health check endpoint.
SecurityTenant signing keys migrated from symmetric HMAC-SHA-256 to asymmetric P-256 ECDSA (ES256)—enables proper public key exposure in DID documents and W3C VC interoperability without exposing private key material.
Added24-hour key rotation grace period—rotated signing keys remain valid for verification via grace_expires_at until the window expires, preventing in-flight VC verification failures during key transitions.
AddedPer-tenant rate limits—configurable rate_limit_per_minute per tenant (Starter: 60, Pro: 300, Enterprise: 600, Dedicated: 1,200 req/min) replacing the previous global default.
AddedAsynchronous webhook delivery via shield_webhook_queue table and shield-webhook-worker edge function—fire-and-forget enqueuing with SSRF validation, exponential backoff retries, and full delivery logging.
AddedGlobal health check endpoint (shield-health)—validates database connectivity, SHIELD_ENCRYPTION_KEY availability, and Stripe integration. Returns 503 if any check fails.
SecurityJWT validation standardized across all edge functions.
ChangedCORS responses include Access-Control-Allow-Methods (GET, POST, PUT, PATCH, DELETE, OPTIONS).
ChangedFAQ, Terms, Privacy, Changelog, Sitemap, and Knowledge Hub updated to reflect P-256 key migration, per-tenant rate limits, key rotation grace period, and webhook queue architecture.
v1.20.0
Cross-tenant threat sharing and insider threat behavioral analytics with A2A agent anomaly detection.
AddedCross-Tenant Threat Sharing—privacy-preserving collaborative threat intelligence via anonymized IOC exchange with k-anonymity thresholds (k ≥ 3), five indicator types, atomic contributor counting, and opt-in subscription model.
AddedThreat Sharing dashboard tab (Enterprise)—network health cards, privacy controls, searchable threat feed with 'You' badges, and manual indicator submission.
SecurityInsider threat engine: pure-function zero-I/O architecture ensures all 27 detectors are independently testable with no database side effects.
SecurityThreat sharing k-anonymity enforced at both RLS and application layers. SECURITY DEFINER function for atomic contributor count increments prevents TOCTOU race conditions.
ChangedFAQ updated with Cross-Tenant Threat Sharing and Insider Threat Analytics categories.
ChangedTerms of Service §2 updated with cross-tenant threat sharing and insider threat analytics disclosures.
ChangedPrivacy Policy §11 updated with threat sharing data flow and insider threat analytics data handling.
ChangedHomepage Protocol Strip updated: Threat Sharing and Insider Threat Analytics added as proprietary protocol primitives.
v1.20.0
AWS IAM Identity Center, PingOne, CyberArk Identity, and OneLogin ISPM modules—seven-provider posture management.
AddedAWS IAM Identity Center ISPM module: 25 weighted security checks across MFA enforcement, permission set least-privilege analysis, account assignment hygiene, lifecycle provisioning, and session controls with 0-100 Posture Score generation via AWS SigV4 authentication.
AddedPingOne ISPM module: 25 weighted security checks across MFA policy enforcement, population and role management, application and sign-on policy hygiene, lifecycle provisioning, and protocol controls with 0-100 Posture Score generation via PingOne Management API.
AddedCyberArk Identity ISPM module: 25 weighted security checks across MFA profile enforcement, administrative privilege management, application SSO hygiene, lifecycle provisioning, and PAM-adjacent posture checks (session recording, PSM policies, credential rotation) with 0-100 Posture Score generation via CyberArk Identity Platform API.
AddedOneLogin ISPM module: 25 weighted security checks across MFA policy enforcement, role and privilege management (case-tolerant super-admin detection), application policy hygiene, directory sync lifecycle, and session controls with 0-100 Posture Score generation via OneLogin Admin API v2.
AddedKnowledge Hub articles: AWS IAM Identity Center ISPM, PingOne ISPM, CyberArk Identity ISPM, OneLogin ISPM, and ISPM Cross-Provider Comparison (seven-provider matrix).
AddedDashboard Posture tab seven-provider toggle: switch between Okta, Entra ID, Google Workspace, AWS IAM, PingOne, CyberArk, and OneLogin with side-by-side scan results.
AddedFAQ entries for AWS IAM Identity Center, PingOne, CyberArk Identity, and OneLogin ISPM, plus updated multi-provider auditing entry.
ChangedTerms of Service updated: Section 2 (Service Description) now includes AWS IAM Identity Center, PingOne, CyberArk Identity, and OneLogin ISPM automated configuration auditing.
ChangedPrivacy Policy updated: Section 11 (Security) now includes AWS IAM, PingOne, CyberArk, and OneLogin ISPM data handling disclosures—all credentials AES-256-GCM encrypted, zero PII persistence.
AddedSupply Chain dashboard tab (Enterprise)—provenance overview cards, artifact history table with expandable details, and attestation submission form.
AddedClient-Side SDK Integrity Attestation (RASP-lite)—six-check runtime self-verification pipeline detecting code tampering, DOM injection, AiTM/EvilGinx2 proxy signatures, and debugger attachment.
AddedIntegrity dashboard tab (Enterprise)—attestation health cards, threat class breakdown, and expandable attestation history with session fingerprint deduplication.
AddedBreakglass Emergency Access Protocol—multi-party approval workflow for emergency access bypass with severity-based approval thresholds (P1: 3 approvers/4h TTL, P2: 2/2h, P3: 1/1h), five access scopes (read, write, admin, decrypt, rotate_keys), and self-approval prevention.
AddedBreakglass dashboard tab (Enterprise)—request form, active session alerts with live TTL countdown, approval pipeline visualization, and 7-day session history.
SecurityBreakglass audit trail: every action (request, approve, activate, revoke) immutably logged with actor IP and user agent via shared audit logger. No DELETE operations permitted on breakglass session records.
SecuritySDK Integrity origin matching hardened: exact domain match replaces startsWith() to prevent domain shadowing attacks.
ChangedFAQ updated with Supply Chain Provenance, SDK Integrity, and Breakglass Protocol categories.
ChangedTerms of Service §2 and Privacy Policy §11 updated with supply chain, SDK integrity, and breakglass data handling disclosures.
ChangedHomepage Protocol Strip updated: Provenance Guard and SDK Integrity added as proprietary protocol primitives.
v1.18.0
SSE/CAEP and DPoP: real-time cross-IdP session revocation and sender-constrained token binding.
AddedShared Signals & Events (SSE 1.0) and Continuous Access Evaluation Protocol (CAEP 1.0) via shield-sse-caep edge function—ingest, validate, and process Security Event Tokens from external identity providers with zero-PII subject hashing.
AddedSSE stream management: configure, list, update, delete, and verify (§7.2) SSE transmitter and receiver streams with per-tenant scoping and admin authorization gates.
AddedFive CAEP event types: session-revoked, token-claims-change, credential-change, assurance-level-change, and device-compliance-change with automated action dispatch and encrypted SET forensic retention.
AddedSSE Transmitter Metadata (§6.1) well-known endpoint for auto-discovery of PasskeyBridge SSE capabilities by external receivers.
AddedDPoP (RFC 9449) token binding via shield-dpop edge function—bind OAuth access tokens to client-held asymmetric key pairs with JWK Thumbprint (RFC 7638) identification.
AddedDPoP server nonce issuance (§8) with DPoP-Nonce HTTP header delivery for enhanced replay protection.
AddedDPoP verification pipeline: seven-step validation (header, payload, temporal window, signature via Web Crypto, binding lookup, nonce check, one-time consumption).
AddedDPoP introspection and tenant-scoped cleanup with stale binding garbage collection.
SecuritySeven supported asymmetric algorithms (ES256, ES384, ES512, PS256, PS384, PS512, EdDSA) with explicit symmetric algorithm rejection and private key material detection.
AddedKnowledge Hub articles: SSE/CAEP Shared Signals and DPoP Proof of Possession.
ChangedFAQ updated with SSE/CAEP and DPoP category covering four new entries.
ChangedTerms of Service §2 and Privacy Policy §11 updated with SSE/CAEP and DPoP data handling disclosures.
ChangedHomepage Protocol Strip updated: SSE/CAEP and DPoP added as proprietary protocol primitives.
v1.17.0
NF-08 Sensor Capture SDK v2.0: real magnetometer and accelerometer entropy channels.
AddedMagnetometer capture via Generic Sensor API—ambient magnetic field readings hashed as EMI spectral proxy. Supported on Chrome, Edge, Opera, and Android WebView.
AddedAccelerometer entropy capture upgraded with unified Generic Sensor abstraction, parallel sampling with magnetometer within ≤100ms temporal window.
AddedThermal state heuristic channel: memory pressure, heap utilization, scheduler jitter, and color depth signals combined into environmental thermal hash.
ChangedSensor Capture SDK bumped to v2.0.0. Placeholder hashes replaced with real sensor data on supported platforms; deterministic fallback preserved for unsupported browsers (iOS Safari).
ChangedKnowledge Hub Provenance Guard article updated: Channel 1 (Atomic Fingerprint) now references magnetometer and accelerometer as production sensor sources.
ChangedQuantum security roadmap: NF-08 sensor capture status upgraded from 'In progress' to 'Shipped'.
v1.16.0
Google Workspace ISPM module, three-provider posture management, and edge function auth hardening.
AddedGoogle Workspace ISPM module: 25 weighted security checks across 2-Step Verification enforcement, super admin sprawl, OAuth app grant activity, mobile device management, stale account detection, and domain verification with 0-100 Posture Score generation via Google Admin SDK.
AddedKnowledge Hub article: Google Workspace Identity Security Posture Management (ISPM)—covers service account setup, domain-wide delegation scopes, check domains, scoring methodology, and three-provider comparison.
AddedDashboard Posture tab three-provider toggle: switch between Okta, Entra ID, and Google Workspace with side-by-side scan results.
AddedFAQ entries for Google Workspace ISPM and three-provider posture auditing.
ChangedTerms of Service updated: Section 2 (Service Description) now includes Google Workspace ISPM automated configuration auditing via Google Admin SDK.
ChangedPrivacy Policy updated: Section 11 (Security) now includes Google Workspace ISPM data handling disclosure—service account private keys encrypted at rest with AES-256-GCM, domain-wide delegation with read-only Admin SDK scopes.
ChangedHomepage Enterprise section updated to reflect tri-provider ISPM (Okta + Entra ID + Google Workspace) with 75 combined security checks.
v1.15.0
Microsoft Entra ID ISPM module, multi-provider posture management, and cross-provider comparison.
AddedMicrosoft Entra ID ISPM module: 25 weighted security checks across Conditional Access & MFA, Privileged Identity Management, Lifecycle & Credential Hygiene, and Protocol & Session Controls with 0-100 Posture Score generation.
AddedKnowledge Hub article: Microsoft Entra ID Identity Security Posture Management (ISPM)—covers Graph API permissions, check domains, scoring methodology, and Okta vs. Entra ID comparison.
AddedDashboard Posture tab provider toggle: switch between Okta and Entra ID with side-by-side scan results and cross-provider posture comparison.
AddedFAQ entries for Entra ID ISPM and multi-provider posture auditing.
ChangedTerms of Service updated: Section 2 (Service Description) now includes Entra ID ISPM automated tenant configuration auditing via Microsoft Graph API.
ChangedPrivacy Policy updated: Section 11 (Security) now includes Entra ID ISPM data handling disclosure—client secrets encrypted at rest with AES-256-GCM, OAuth 2.0 client credentials flow, read-only Graph API permissions.
ChangedHomepage Enterprise section updated to reflect dual-provider ISPM (Okta + Entra ID) with 50 combined security checks.
v1.14.0
Okta ISPM documentation, asset pipeline optimization, and CSP hardening.
AddedFAQ entry for Okta ISPM under Enterprise SSO & SCIM category.
AddedPer-article Open Graph images: each blog article now uses its hero image as the og:image and JSON-LD image via the assets.passkeybridge.io CDN, improving social preview richness.
ChangedAll blog hero images converted to WebP format—final two .jpg holdouts (selective-disclosure, edge-first) compressed from 2.3 MB combined to 234 KB (90% reduction).
SecurityContent Security Policy img-src directive updated to include assets.passkeybridge.io subdomain, ensuring CDN-served images are not blocked by CSP in production browsers.
ChangedTerms of Service updated: Section 2 (Service Description) now includes Okta ISPM automated IdP configuration auditing.
ChangedPrivacy Policy updated: Section 11 (Security) now includes ISPM data handling disclosure—Okta API tokens encrypted at rest with AES-256-GCM, zero plaintext credential storage.
ChangedSDS updated to v2.10.0 with ISPM documentation and asset pipeline changes.
v1.13.0
Documentation expansion, veracity audit, and reference corrections.
AddedTwo new documentation articles: Edge-First Signal Verification (signals category) and Identity Settlement Tokens (security category).
FixedML-DSA-65 signature size corrected to 3,309 bytes per NIST FIPS 204 Table 1 across whitepaper, settlement tokens paper, and all documentation.
FixedSP 800-227 publication date corrected from 'early 2025' to November 2024 (Initial Public Draft) across whitepaper and settlement tokens references.
FixedWebAuthn Level 3 reference updated from 'FIDO Alliance (2024)' to 'FIDO Alliance & W3C (2025)'—W3C Recommendation finalized April 2, 2025.
ChangedBlog veracity audit completed: Cloudflare Workers CPU limits, Deno Deploy region count, and ECDSA nonce-reuse historical reference corrected against authoritative sources.
v1.12.0
Whitepaper, Terms, Privacy, SDS, and changelog aligned to the patent portfolio.
ChangedWhitepaper updated to v3.1.0. Added the purpose-bound PII vault and the topological virtual authenticator to the patent portfolio, competitive position, and roadmap.
ChangedTerms of Service updated: Section 2 (Service Description) names the purpose-bound PII vault and the topological virtual authenticator; Section 9 (IP) states the filed portfolio.
ChangedPrivacy Policy updated: Section 11 (Security) now includes Purpose-Bound PII Vault with dual-path cryptographic storage and auditable purpose-coded decryption.
ChangedSDS updated to v2.8.0 with documentation alignment for the purpose-bound PII vault and the topological virtual authenticator.
v1.11.0
Purpose-Bound PII Vault and Topological Virtual Authenticator shipped.
AddedPurpose-Bound PII Vault —dual-path cryptographic architecture with AES-256-GCM ciphertext and independent SHA-256 hashes (keyed HMAC-SHA-256 under a server-held pepper since 2026-08-01). Every decryption requires a declared purpose code logged in an immutable audit trail. Tenant-isolated BYOK model enables cryptographic erasure via key deletion.
AddedTopological Virtual Authenticator —Manifest V3 browser extension implementing a virtual FIDO2 authenticator via topological braiding operations (#P-hard computational barrier). Kinematic-Temporal Gate validates 4D coordinates against predicted LEO Doppler telemetry.
SecurityThe purpose-bound PII vault enforces zero plaintext persistence. PII is never stored or retained in application memory beyond the encryption or decryption operation.
AddedImmutable decryption audit log tracking field name, function name, purpose code, and tenant ID for every PII access event.
ChangedPatent portfolio notes expanded to cover the purpose-bound PII vault and the topological virtual authenticator.
v1.10.0
Bulk PII Migration Tooling—tenant-facing encryption pipeline for legacy plaintext columns during customer onboarding.
AddedBulk PII Migration panel in Settings—enables enterprise customers migrating from legacy systems to encrypt pre-existing plaintext columns into the zero-PII model. Per-table coverage heatmap and progress bars.
AddedOne-click 'Encrypt Unprotected Rows' action processes up to 500 rows per batch across profiles and newsletter subscribers.
AddedMigration run history table tracking every encrypt and shred batch with row counts and error details.
SecurityShred action enforces pre-flight coverage check—blocks execution if any rows lack encrypted counterparts.
ChangedPII migration edge function supports three actions: status, encrypt, and shred.
v1.9.0
ML-DSA-87 (Security Level 5) Enterprise add-on, Stripe billing integration, and full documentation sweep.
SecurityML-DSA-87 (NIST FIPS 204, Security Level 5) shipped as an Enterprise add-on at $149/mo. Per-tenant pqc_level configuration with runtime algorithm branching in pqc-signatures, shield-vc-issue, and shield-cached-proof.
AddedStripe product and price created for ML-DSA-87 add-on. Webhook handler maps checkout to pqc_level upgrade; cancellation reverts to ML-DSA-65.
AddedEnterprise-gated PQC Level toggle in Settings → Security—switch between Level 3 (ML-DSA-65) and Level 5 (ML-DSA-87) with one click.
AddedML-DSA-87 add-on card on the Pricing page with feature comparison and checkout flow.
ChangedSDS updated to v2.6.0. Knowledge Hub PQC articles, cryptographic roadmap, VC capabilities table, and compliance references updated to reflect ML-DSA-87 as shipped.
ChangedFAQ updated with 'ML-DSA-65 vs ML-DSA-87' question covering parameter differences, pricing, and enablement.
AddedSCIM v2 provisioning log table (shield_scim_provisioning_log) with operation tracking, latency metrics, raw payload capture, and tenant-admin RLS policy.
AddedSCIM Provisioning Log viewer in dashboard Settings tab—filterable by operation type, with inline payload inspection and success-rate statistics. Gated to Enterprise plan.
AddedexternalId and scim_active columns on shield_tenant_members for Okta directory mapping and soft-deprovisioning support.
Changedshield-scim edge function hardened for full RFC 7644 compliance: PatchOp validation, externalId mapping, RFC-compliant error schemas (urn:ietf:params:scim:api:messages:2.0:Error), and soft-delete deprovisioning.
SecurityQuarterly E2E production audit completed: 208/208 tests passing, all 43 shield_ tables verified with RLS enabled, zero type errors, all edge functions responding with correct auth gates.
v1.7.0
Interactive API Playground, OpenAPI v2.0, mobile dashboard UX, drip campaign, and expanded test coverage.
AddedInteractive API Playground embedded in SDK page (/sdk#playground)—execute live API calls with pre-configured endpoint templates, editable JSON request bodies, response timing display, and one-click cURL export.
AddedOpenAPI specification updated to v2.0.0 with full request/response schemas for all 40 edge functions across 24 tag groups. Live at /functions/v1/openapi-spec.
AddedMobile bottom-tab navigation for the dashboard—replaces sidebar on viewports below 768px for improved mobile CX.
AddedPost-auth drip email campaign wired to signup flow via enroll_drip_campaign database trigger on profiles table.
AddedVC Wallet SDK unit test suite—35 tests covering credential lifecycle, JWT handling, OpenID4VP presentation exchange, and phone hashing.
ChangedEdge function inventory updated to 39 functions (added shield-blast, shield-cascade, shield-provenance-guard, verify-sds-passcode; removed verify-patent-passcode).
ChangedSDS updated to v2.5.0. Total verified checkpoints: 263 (208 frontend + 55 edge function).
v1.6.0
Production ML-DSA-65 lattice signatures promoted from reference validation to full signing path.
SecurityML-DSA-65 (NIST FIPS 204) promoted to production signing—PQClean reference implementation compiled to WebAssembly (mldsa-wasm). 3,309-byte signatures. (The sub-millisecond signing figure first published here is removed; see the correction above.) Prior HMAC-based reference validation layer retired.
ChangedHybrid PQC signatures now produce native ML-DSA-65 output in shield-cross-reference, shield-cached-proof, shield-vc-verify, and shield-a2a-handshake edge functions.
AddedDeterministic key derivation: SHIELD_ENCRYPTION_KEY → domain-separated HMAC-SHA-256 → 32-byte seed → ML-DSA-65 key expansion per FIPS 204. Per-tenant cryptographic isolation without schema changes.
AddedML-DSA-87 (CNSA 2.0 Level 5) added to SDS migration roadmap as Phase 6 for defense and intelligence verticals.
ChangedUpdated landing page, whitepaper, FAQ, SDS (v2.4.0), pitch, and partner collateral to reflect production PQC status.
NF-08 Sensor Capture SDK, carrier-signal variance detection, and documentation updates.
AddedNF-08 Sensor Capture SDK (sensor-capture.ts)—client-side network jitter (RTT variance, navigator.connection, OS scheduler delta) and accelerometer (60Hz via Generic Sensor API) capture within the 100ms Atomic Fingerprint temporal window.
AddedJitter replay detection in shield-spatial-bind—identical network jitter hashes across distinct captures trigger +0.4 anomaly score for replay/relay attack flagging.
AddedNew columns on shield_atomic_fingerprints: network_jitter_hash (text) and channels (text[]) for multi-channel sensor provenance.
AddedBlog: 'The Invisible SIM-Swap: How Carrier-Signal Variance Detects What Software Can't'—on carrier-signal entropy and NF-08 jitter analysis.
ChangedQRNG provider hierarchy corrected to four tiers: Outshift (Cisco) → QCi uQRNG (Photonic) → ANU QRNG → CSPRNG fallback.
ChangedUpdated SDS (v2.3.0), FAQ, patent review, hardware brief, and pitch documents with sensor capture SDK details.
SecurityAll raw sensor data SHA-256 hashed on-device before transmission—zero-PII architecture extended to physical-layer attestation.
v1.4.3
VC Wallet SDK and RLS policy optimization.
AddedVC Wallet SDK (PBWallet)—tenant-facing TypeScript SDK for credential storage, OpenID4VP presentation exchange, and lifecycle management. Available at /sdk with copy-paste code snippets.
AddedSDK integration tab in dashboard Credentials panel with pre-filled initialization snippets scoped to the active tenant.
ChangedMigrated all 75 Row-Level Security policies from RESTRICTIVE to PERMISSIVE mode for improved query composability, preserving all tenant-isolation expressions. This aligns with Supabase best practices for multi-policy tables.
ChangedUpdated FAQ, terms, privacy, SDS, and changelog documentation to reflect current v1.4.3 build including SDK delivery.
v1.4.2
Landing page redesign and zero-PII hardening.
ChangedLanding page redesigned with amber accent system, updated hero typography, and refined CTA styling across all viewports.
ChangedArchitecture diagram SVG connectors migrated from hardcoded HSL to theme-aware tokens for dark/light mode consistency.
SecurityWhitepaper gate now stores only SHA-256 email hashes (keyed HMAC-SHA-256 under a server-held pepper since 2026-08-01)—no plaintext email ever persisted, enforcing zero-PII architecture.
v1.4.1
BLAST Protocol, DRBG refactor, and documentation updates.
AddedBLAST Protocol—end-to-end encrypted signal resolution tunnels using X25519 ECDH + AES-256-GCM with QRNG-seeded session keys.
AddedBLAST API documentation with blast_init, blast_resolve, and blast_teardown endpoint references and Node.js quick-start snippet.
ChangedRefactored BLAST module into blast-types, blast-crypto, and blast-sessions for improved maintainability.
ChangedDRBG entropy hierarchy simplified to Outshift QRNG → ANU QRNG → CSPRNG (removed unused Qrypt provider).
ChangedUpdated SDS, whitepaper, FAQ, terms, and privacy documentation to reflect current architecture.
SecurityDRBG nonce generation now XOR-mixes local CSPRNG entropy per invocation to prevent deterministic session IDs.
v1.4.0
Agentic Identity & Shadow Proxy enhancements.
AddedAgent Delegate provisioning—grant scoped, time-limited API access to autonomous agents acting on behalf of verified users.
AddedShadow Proxy identities—generate disposable email and phone proxies that forward through encrypted relays without exposing real PII.
ChangedDashboard sidebar reorganized for clearer navigation across Pillar I, II, and III features.
FixedResolved edge case where cached proofs near expiry could return stale trust-level badges.
SecurityPost-quantum signature verification updated to latest NIST ML-DSA-65 parameter set.
v1.3.0
Intelligence layer, playbook improvements, and expanded webhook verification.
AddedAI-powered Intelligence Worker—automated threat-actor clustering and risk scoring on ingested events.
AddedPlaybook builder wizard with industry-specific templates (fintech, healthcare, crypto).
ChangedEvent timeline now displays response latency (p50/p99) per playbook execution.
FixedWebhook delivery retry logic now respects exponential back-off ceiling correctly.
SecurityExtended HMAC-SHA-256 signature verification to custom webhook sources, completing coverage across all inbound carrier payload paths.
v1.2.0
Verifiable Credentials and cross-reference matching.
AddedPillar II—Verifiable Credential verification with support for W3C VC Data Model 2.0 and SD-JWT.