Voxint v0.28.0
What's new
Added
- Media detail page (
GET /media/{id}/editor, #156). Editor backend contract with run selection, claim-token verification, transcript display with speaker palette and verified-progress counter - Token-sensitive path classifier (#156).
Cache-Control: no-storeextended to/media/{uuid}/editor*paths - Possible-duplicates reminder card (#181). Speakers overview shows a card when roster speakers share high cosine similarity
- ADR 0008: enrichment persistence simplification scope (H7)
Changed
- Idempotent insert helper (M10).
savepoint_adopt_or_conflict()extracted tovoxint.idempotency - Stage graph contract tests and runtime guard (H6). 12 contract tests lock pipeline stage invariants
- SubmissionResult (H5). Submit functions return a result with explicit
publish()instead of a barePipelineRun - Broker fault tolerance (M7). Post-finalize autogeneration uses
.apply_async(ignore_result=True), recovery sweep widened - Global HTML error renderer (H2). Content-negotiated error pages for browsers, JSON for API clients
- Console polish (#244, #248, #249). Jobs page TOOK column/subfolder/failure reason; settings status host-level hardware gauges, GPU acceleration in install summary, LLM description, Features tab, Check for updates button; home feed unresolved voice count; media overview review-state chips and selected-row tint
Removed
- Legacy folder columns dropped (#177). Migration 0046 removes
app_settings.media_folders/folder_domain_packs
Fixed
- Corrections editor (#176). No longer silently converts inherited (NULL) corrections to an explicit empty list
Install
pip install voxint==0.28.0Or with Docker:
docker pull ghcr.io/bengizmo/voxint:0.28.0Full changelog: https://github.com/bengizmo/voxint/blob/main/CHANGELOG.md