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.