v0.3.3
eisenzopf/rvoipv0.3.3Jul 29, 2026by eisenzopf
AI Summary
A patch release fixing vCon (conversation) conformance issues, correcting the vCon model, and updating signing mechanisms to JWS General JSON Serialization.
Key Highlights
- Fixed vCon conformance issues against draft-ietf-vcon-vcon-core
- Session finalization converts through the canonical `rvoip-vcon` model
- Signed vCons use JWS General JSON Serialization
- New store handles use SHA-512 hashes
Breaking Changes
- Dialog duration is now represented in seconds
- Several model fields were corrected or expanded (party DID/STIR, analysis vendor metadata, etc.)
- `sign_jws` returns `SignedVcon` in General JSON form and requires certificate metadata
- New content handles use conformant SHA-512 hashes
- The core byte-store `put` contract now carries `ConversationId`
New Features
- vCon model updates
- SHA-512 hashing for stores
- Offline schema fixtures and regression tests
Full Release Notes
# rvoip 0.3.3 This unified patch release fixes vCon conformance issues reported in [#31](https://github.com/eisenzopf/rvoip/issues/31), [#32](https://github.com/eisenzopf/rvoip/issues/32), [#33](https://github.com/eisenzopf/rvoip/issues/33), and [#34](https://github.com/eisenzopf/rvoip/issues/34), against `draft-ietf-vcon-vcon-core` commit `2342aba64bdb71d9e80ab6e274a3921e2b1c769e`. ## Highlights - Session finalization now converts through the canonical `rvoip-vcon` model, validates before storage, emits valid escaped JSON, preserves complete Base64Url-encoded bodies, and records durations in seconds. - The vCon model now covers the current core schema, semantic reference rules, lineage, recording sets, all dialog types, analyses, attachments, and declared extensions while preserving unknown extension properties. - Signed vCons now use JWS General JSON Serialization with appendable signatures and trusted-key resolution. Signing remains explicit; core emission is unsigned. - New store handles consistently use `sha512-<base64url-no-padding>` in memory and PostgreSQL. Existing legacy hashes remain readable and are not rewritten. - The reserved `group` parameter is no longer emitted. Conversation-to-vCon relationships are represented in store/index metadata. - Dedicated offline schema fixtures, semantic/JWS/hash regressions, core end-session coverage, and live ephemeral-PostgreSQL qualification were added. ## Breaking pre-1.0 vCon API changes - Dialog duration is now represented in seconds. - Several model fields were corrected or expanded, including party DID/STIR, required analysis vendor metadata, attachment placement/purpose, and redacted/amended lineage. - `sign_jws` returns `SignedVcon` in General JSON form and requires certificate metadata; HMAC signing is rejected for signed vCons. - New content handles use conformant SHA-512 hashes. - The core byte-store `put` contract now carries `ConversationId` and exposes conversation-index lookup. ## Qualification The affected vCon libraries, core finalization boundary, PostgreSQL store, QUIC full-stack vCon path, facade feature, and AI harness example were qualified on release commit `b8f2b78a321cce89a855819d0319b309c669ea88`. The full workspace library, documentation, and non-performance integration suites also passed during release review. No performance, soak, or full beta gate was rerun for 0.3.3. The immutable 0.3.2 beta/performance evidence remains unchanged-subsystem background and is not relabeled as a 0.3.3 beta run. Recording-to-transcript automation is not part of 0.3.3; callers must still provide transcript analyses explicitly.