v3.5.1 — P0 conformance + SDK alignment
v3.5.1 — P0 conformance + SDK alignment
ATLAS-audit P0 alignment across schemas, libs, vectors, docs, and SDKs.
Spec / Schema
cipher.namecanonical =AES-256-GCM(uppercase). Readers accept legacyaes-256-gcm(lowercase) with a deprecation warning.user_preferencescanonical type =string(max 32 KiB UTF-8). Object form retained for pre-v3.4 backward compat.- Schema directory disambiguation:
SCHEMA_INDEX.mddistinguishes the unified vs split v3 schema directories.
SDKs
- npm
@klickd/core→ 3.5.1: cipher legacy compat already in decode; types acceptuser_preferences: string | object; cleandtsbuild (addedargon2-browserambient declaration). - PyPI
klickd→ 3.5.1: cipher.name validation added withKLICKD_E_CIPHERcode andDeprecationWarningfor legacy lowercase;user_preferences: Union[str, dict].
Tests
- All 52/52 Python vectors + 29/29 JS vectors pass (6 JS skipped: argon2 not installed locally).
- npm package: 7/7 tests pass. PyPI package: 12/12 tests pass (added
user_preferencesstring|object roundtrip + cipher legacy/unknown coverage).
Note on envelope vs SDK versions
The envelope-format constant (klickd_version field) stays at "3.0" per the format spec — it tracks the on-disk envelope format, not the SDK release version (envelope_version (skill_revision) convention from CHANGELOG).
See CHANGELOG.md for full details.