# Changelog

> All notable changes to Attestix documented in Keep a Changelog format.

# Changelog

All notable changes to Attestix are documented here.

Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [0.4.3] - 2026-10-12

### Changed

- Ship the previously drafted homepage and site-wide design on the current hardened source.
- Upgrade the browser verifier to npm `attestix` 0.4.2 while retaining boundary checks and regression tests.
- Correct registry installation/version guidance and the offline action-log hash example.
- Clarify trust, revocation, capture and external-witness limits; refresh release metadata and evidence-only website wording.
- Improve console-tour keyboard focus and timer cleanup.

## [0.4.2] - 2026-10-12

### Security and trust boundaries

- Bound untrusted identity, credential and portability inputs.
- Preserve credential trust-key binding and fail-closed default tenancy.
- Scope local erasure to managed records and parseable local backups; external copies need separate handling.
- Describe governance output as evidence and provider-review drafts, not legal conformity or certification.
- Correct authentication, namespace migration, verification and staged AI Act guidance.

## [Unreleased]

- Document the readiness changes merged to main, their verification boundaries and the difference between source merges and registry publication.
- Describe governance records as evidence, not legal conformity or certification; correct current application dates and remove unverified tool/download counts.

## [0.3.0] - 2026-04-17

Flagship release introducing real framework integrations, a security hardening sweep, and GitHub Actions CI/CD.

### Added

**Real framework integrations (not simulations)**
- LangChain integration via `BaseCallbackHandler` that logs every tool call, LLM call, and chain step to the Attestix audit trail with hash chaining (#42)
- OpenAI Agents SDK integration using `MCPServerStdio` so agents can call Attestix tools directly as MCP tools (#48)
- CrewAI integration that attaches Attestix to the `mcps` field on every agent, giving each crew member full attestation capabilities (#51)
- 7 additional framework integration examples and 15 integration tests covering LangChain, OpenAI Agents SDK, and CrewAI end to end (#41)

**CI/CD and release tooling**
- GitHub Actions workflow with pytest matrix (Linux and Windows), lint, and security scan jobs (#49)
- Single-job PyPI publish workflow restored to token auth (#54, #56)
- Automated release for v0.3.0 including tag, PyPI push, and documentation sync (#52, #58)

**Security fixes (HIGH severity)**
- SSRF redirect following hardened to re-check every redirect target against the private IP and metadata endpoint allow list (#47)
- API key comparison moved to constant-time HMAC to prevent timing side channels (#47)
- Exception messages sanitized so internal file paths and stack traces no longer leak to MCP clients (#47)
- `display_name` validation tightened to block control characters and oversized values (#47)
- Signing key file permissions locked down to owner-only read/write on POSIX (#47)
- Delegation chain authentication bypass fixed: parent tokens are now fully verified and capability attenuation is enforced so a delegatee cannot silently escalate privileges beyond its delegator (#45)
- PyJWT CVE remediated, plus simplified publish workflow removed the id-token and environment gate that blocked v0.3.0 publishing (#55)

**Correctness fixes**
- EAS schema UID derivation corrected and on-chain event decoding hardened so `anchor_credential` and `verify_anchor` no longer misreport status (#50)
- Article 43 conformity assessment now differentiates Annex III categories per the EU AI Act text, so self-assessment is permitted where the regulation allows and blocked where it does not (#46)
- Persona e2e test findings addressed: version printout, `python -m attestix`, and quickstart path fixed (#57)

### Changed

- Total automated tests: 284 -> 358 (267 functional + 91 conformance benchmarks), 1 skipped on Windows
- Documentation refreshed to reflect v0.3.0 current state: 358 tests, 3 real framework integrations, CI/CD pipeline (#58)

## [0.2.4] - 2026-03-10

### Added
- 4 interactive demo apps: Identity Explorer, Reputation Dashboard, EU AI Act Compliance Checker, Fine Calculator
- Mermaid diagram rendering in docs (remark plugin with dark theme)
- Static client-side search via Orama (Fumadocs static mode)
- Reputation scoring guide (`/docs/guides/reputation`)
- EU AI Act urgency blog post (146 days countdown)
- Testimonials section on landing page (anonymous reviewer validation, names on file)
- `llms.txt` for AI discoverability

### Changed
- Forced dark-mode-only (removed theme toggle, hardcoded dark class)
- Tables now fill full container width (display:table + width:100%)
- All documentation links updated from docs.attestix.io to attestix.io/docs
- Hero messaging rewritten for non-technical audiences ("TurboTax for AI compliance")
- README documentation table updated with all current guide links

### Fixed
- Client-side search error on Cloudflare Pages (switched to static search mode)
- Mermaid sequence diagram text invisible in dark mode (added explicit theme variables)
- 3 broken CTA links in demo pages
- CodeQL security alerts (workflow permissions, unused imports, broad exception handling)

## [0.2.3] - 2026-03-05

### Added
- Fumadocs v15 integration (migrated 17 docs pages from MkDocs to in-app MDX)
- Sidebar navigation with collapsible sections (Getting Started, Guides, Reference, Project)
- Dark mode prose typography overrides for Fumadocs

### Changed
- Docs now served at attestix.io/docs instead of docs.attestix.io
- Next.js upgraded from 15.3.5 to 15.5.12 (resolved 8 security vulnerabilities)

## [0.2.2] - 2026-02-27

### Added
- Marketing website at attestix.io (Next.js 15 + Tailwind v4 + Cloudflare Pages)
- Landing page: Hero, Architecture, TechStack, Examples, UseCases, Statistics, CTA sections
- Standalone pages: /pricing, /faq, /community, /blog
- 3 blog posts (MDX)
- RSS and JSON feeds
- Domain migration from attestix.vibetensor.com to attestix.io
- Namespace package for cleaner imports (`from attestix.services import ...`)
- PyPI Trusted Publishing via OIDC (GitHub Actions)
- Cross-post guide for distribution

### Fixed
- CI Merkle smoke test passing strings instead of bytes

## [0.2.1] - 2026-02-21

### Added
- 91 conformance benchmark test suite (`tests/benchmarks/`) validating standards claims:
  - RFC 8032 Section 7.1 Ed25519 canonical test vectors (4 IETF vectors, 18 tests)
  - W3C VC Data Model 1.1 conformance (credential structure, proof, presentations, 24 tests)
  - W3C DID Core 1.0 conformance (did:key, did:web, roundtrip resolution, 16 tests)
  - UCAN v0.9.0 conformance (JWT header, payload, attenuation, revocation, 16 tests)
  - MCP tool registration conformance (MCP tools, 9 modules, naming, 5 tests)
  - Performance benchmarks with hard latency thresholds (7 tests)
- Standards Conformance section in README with measured performance numbers
- Running the Test Suite section in configuration docs
- FAQ entry on standards validation methodology

### Changed
- Total automated tests: 193 -> 284 (193 functional + 91 conformance benchmarks). See the 0.3.0 entry for the current figure (358).
- Updated research paper evaluation section with conformance test results and measured latencies
- Updated all documentation (architecture, changelog, contributing, roadmap, FAQ) with benchmark details

## [0.2.0] - 2026-02-21

### Added

**Blockchain Anchoring**
- Blockchain module: anchor identity and credential hashes to Base L2 via Ethereum Attestation Service (EAS)
- Merkle batch anchoring for audit log entries (cost optimization)
- On-chain verification and anchor status queries
- Gas cost estimation before anchoring

**Security Enhancements**
- SSRF protection with private IP blocking, metadata endpoint blocking, and DNS rebinding prevention
- Hash-chained audit trail with SHA-256 chain hashes for tamper-evident logging
- Encrypted key storage with AES-256-GCM when `ATTESTIX_KEY_PASSWORD` is set
- Local erasure via `purge_agent_data`; remote copies and shared artifacts require separate handling

**New Tools**
- `purge_agent_data` - Complete local data erasure across all 6 storage files
- `revoke_delegation` - Revoke delegation tokens
- `update_compliance_profile` - Update existing compliance profiles
- `verify_credential_external` - Verify any W3C VC JSON from external sources
- `verify_presentation` - Verify Verifiable Presentations with embedded credentials

**Testing**
- 284 automated tests at the 0.2.0 cut (unit, integration, e2e, conformance benchmarks). The current figure is 358 (see 0.3.0).
- 91 conformance benchmark tests validating standards compliance:
  - RFC 8032 Section 7.1 Ed25519 canonical test vectors (4 IETF vectors, 18 tests)
  - W3C VC Data Model 1.1 conformance (credential structure, proof, presentations, 24 tests)
  - W3C DID Core 1.0 conformance (did:key, did:web, roundtrip resolution, 16 tests)
  - UCAN v0.9.0 conformance (JWT header, payload, attenuation, revocation, 16 tests)
  - MCP tool registration conformance (MCP tools, 9 modules, naming, 5 tests)
  - Performance benchmarks with hard latency thresholds (7 tests)
- 16 user persona test scenarios (cybersecurity, government regulator, legal, healthcare, DPO, enterprise architect)
- 10 manual workflow simulations with real tool output
- Docker containerized test runner (`Dockerfile.test`)
- AWS CodeBuild CI spec

### Changed
- Identity module: added purge_agent_data
- Delegation module: added revoke_delegation
- Compliance module: added update_compliance_profile
- Credentials module: added verify_credential_external, verify_presentation
- Total tools: 36 -> 47 across 9 modules

## [0.1.0] - 2026-02-19

Initial public release.

### Added

**Identity & Trust**
- Identity module: create, resolve, verify, translate, list, get, revoke agent identities via Unified Agent Identity Tokens (UAITs)
- Agent Cards module: parse, generate, and discover Google A2A-compatible agent cards
- DID module: create did:key and did:web identifiers, resolve any DID via Universal Resolver
- Delegation module: UCAN-style capability delegation with EdDSA-signed JWT tokens
- Reputation module: recency-weighted trust scoring with category breakdown

**EU AI Act Compliance**
- Compliance module: risk categorization (minimal/limited/high), conformity assessments (Article 43), Annex V declarations of conformity
- Credentials module: W3C Verifiable Credentials (VC Data Model 1.1) with Ed25519Signature2020 proofs, Verifiable Presentations
- Provenance module: training data provenance (Article 10), model lineage (Article 11), audit trail (Article 12)

**Infrastructure**
- Ed25519 cryptographic signing for all persistent records
- JSON file storage with file locking and corruption recovery
- Lazy service initialization with TTL cache
- MCP server via FastMCP with stderr-safe logging
- PyPI packaging via pyproject.toml

**Documentation**
- Getting Started guide
- EU AI Act Compliance workflow guide
- Risk Classification decision tree
- Concepts reference (UAIT, DID, VC, VP, UCAN, Ed25519)
- Complete API reference for all tools
- Integration guide (LangChain, CrewAI, AutoGen, MCP client)
- FAQ
- 5 runnable example scripts

### Security

- Private keys never returned in MCP tool responses (stored locally in .keypairs.json)
- Mutable fields (proof, credentialStatus) excluded from VC signature payloads
- High-risk systems blocked from self-assessment (requires third-party per Article 43)
- SSRF protection on agent discovery URLs
- All sensitive files excluded from git (.signing_key.json, .keypairs.json, .env)
