v0.3.3

publicsuffix/listv0.3.3Jul 29, 2026by eisenzopf

AI Summary

Fixes vCon conformance issues, updates the vCon model to cover the current core schema, and introduces JWS General JSON Serialization for signed vCons.

Key Highlights

  • vCon model updates covering core schema and lineage
  • Signed vCons use JWS General JSON Serialization
  • New content handles use conformant SHA-512 hashes
  • Dialog duration represented in seconds
  • Dedicated offline schema fixtures added

Breaking Changes

  • Dialog duration is now represented in seconds
  • 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 covers recording sets and all dialog types
  • Signed vCons with appendable signatures
  • vCon storage improvements with sha512 hashes
  • Recording-to-transcript automation integration points

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.