The V3 voice transcript retention gate is v3-voice-transcript-retention.v1. It
enforces the architecture rule that live voice transcript text remains in an
ephemeral rolling 60 s buffer unless a user submits an in-world safety report
that attaches the buffer as evidence.
Retention Rules#
- Rolling transcript buffers use
V3_VOICE_TRANSCRIPT_ROLLING_BUFFER_WINDOW_MS(60_000) and evict utterances outside that window. - Unattached rolling buffers have
durablePersistence: 'none', no attached report id, and no durable transcript object refs. attachV3VoiceTranscriptBufferToReportis the only durable transcript path; it scopes object refs to a tenant-resident safety report id.submitV3InWorldReportmarks transcript storage asattached-report-only.auditV3VoiceTranscriptRetentionfails if voice text persists without an attached report or if any persisted transcript exceeds the 60 s window.
Verification#
Run pnpm verify:v3 voice-transcript-retention. The gate checks the
implementation, privacy audit evidence, analytics manifest, package script, and
TODO traceability. The implementation tests in @oshun/tenant-lilith-commons
cover buffer eviction, report attachment, and audit rejection for unattached or
over-retained voice content.