Releases: InfantLab/VideoAnnotator
Release list
v1.4.4
Modularity, viewer integration, and JOSS resubmission release, responding to pre-review feedback on openjournals/joss-reviews#10182 and #10183.
Added
- Bundled viewer: The FastAPI service now serves Video Annotation Viewer's static build at
/viewer, same-origin and zero-config (VIDEOANNOTATOR_ENABLE_VIEWERto disable). VAV remains fully usable standalone. - Contract test: Added
tests/contract/test_viewer_contract.py, which validates VideoAnnotator's exporter output against VAV's actual Zod schemas. - Roadmap docs: Added
docs/development/roadmap_v1.6.0.md(plugin ecosystem, local LLM/Ollama backend) and rewroteroadmap_v1.5.0.mdaround the modularity spec (specs/003-modular-pipeline-architecture).
Fixed
- Person-tracking contract gap: COCO output was missing
person_id/person_label/label_confidence/labeling_methodwhen identity labeling was disabled, which VAV requires as non-optional. setup-dbDetachedInstanceError on the first command in the README quickstart.- Hidden CLI commands:
validate-emotion,generate-token, andsetup-dbwere missing from--helpdue to a misplaced__main__guard. - First-run friction: torch/CUDA warmup moved off the first health-check request into a startup task; added a one-click
/viewer-connectlogin bridge. - Silent face-pipeline fallback: the
facepipeline alias could silently pick an unconfigured/experimental variant instead of erroring; OpenFace3 now fails fast with one clear error instead of one per frame. - Windows SQLite teardown (openjournals/joss-reviews#10182): the engine-disposal fix from this release didn't cover two test fixtures that construct
SQLiteStorageBackenddirectly; both now close the backend in teardown.
Documentation
- Full stale-link/version sanity pass ahead of JOSS resubmission: fixed ~14 stale
src/*paths in reviewer-facing docs left over from thesrc/videoannotator/package restructure, backfilled missing v1.4.3/v1.4.4 changelog entries, correctedpyproject.tomlmypy config pointing at removed paths, and fixed several stale version pins (INSTALLATION.md,Docker.md,output_naming_conventions.md,CITATION.cff). - Added the interface figure to the combined JOSS paper and documented the
/viewerintegration and contract test as evidence of coordinated maintenance between VideoAnnotator and VAV.
See CHANGELOG.md for the full itemized history, and PR #6 for the bulk of this release's changes.
v1.4.3
Patch release fixing installability and CI raised during JOSS review (openjournals/joss-reviews#10182).
Fixed
- Restored missing storage modules (
storage/manager.py,storage/providers/*) that an unanchoredstorage/rule in.gitignorehad silently excluded from the repository. Fresh clones previously failed withNo module named videoannotator.storage.manager, and the API/worker could not start. - Cross-platform install: pinned the
torch/torchvision/torchaudiotrio to the matched2.6.0release and restricted the CUDA (cu124) index to Linux, so macOS/Windows resolve the CPU build from PyPI. Previouslyuv syncfailed on any non-Linux/non-CUDA platform. - Bumped
openai-whisperfrom==20240930to>=20250625. - Repointed reviewer documentation from the removed
scripts/verify_installation.pyto the built-invideoannotator diagnosecommand. - Cleared pre-existing lint, type-check, and test failures. CI is now green on Linux and macOS; the Windows leg is informational pending #5.
See PR #4 for the full set of changes.
v1.4.2 - JOSS Review release
This release accompanies the submission of VideoAnnotator to the Journal of Open Source Software. A parallel submission is being made for the companion project Video Annotation Viewer.
Below is a summary of all changes across the v1.4.x release series (v1.4.0 -- v1.4.2).
Added (v1.4.0)
- Flexible storage: New artifact download capabilities, including source video retrieval.
- Database-backed authentication: Migrated from file-based to database-backed auth for improved security and scalability.
- Artifacts API: New endpoint
GET /api/v1/jobs/{id}/artifactsto download job results as a ZIP archive. - Container tooling: Baked
hadolintinto Docker images and devcontainer; addedgit-lfsto CPU/GPU Dockerfiles.
Changed
- CLIP migration (v1.4.2): Migrated scene-classification pipeline from
cliptoopen_clip, using the LAION-2B pretrainedViT-B-32model for improved availability and reproducibility. - HuggingFace auth (v1.4.2): Updated diarization and Whisper pipelines to use the current
tokenparameter instead of the deprecateduse_auth_token. - JOSS manuscript (v1.4.1): Consolidated the paper into
paper/paper.mdand replaceddocs/joss.mdwith a pointer to avoid divergence. - Repository hygiene (v1.4.1): Moved top-level helper scripts into organized subfolders under
scripts/; updated imports to thevideoannotator.*namespace. - Entrypoints (v1.4.1):
api_server.pynow acts as a compatibility wrapper; documentation recommends thevideoannotatorCLI. - README (v1.4.1): Rationalized setup/install instructions, fixed broken links, replaced hard-coded test/coverage claims with CI status badges.
- Devcontainer (v1.4.2): Simplified forwarded-port list to the single default API port (18011).
Fixed
- Artifact downloads (v1.4.0): Ensured source video files are included in the downloaded artifact ZIP.
- Database GUID handling (v1.4.2): Added defensive error handling in the
GUIDtype decorator for malformed UUID values. - Diarization init (v1.4.2): Wrapped model loading in explicit error handling with a clear log message on failure.
- Docs (v1.4.1): Standardized examples on canonical API port
18011and corrected Docker run port mappings. - Docs (v1.4.1): Replaced placeholder
docs/usage/accessing_results.mdwith a real results retrieval guide.
Removed (v1.4.2)
- Voice emotion baseline: Removed
voice_emotion_baselinepipeline metadata and associated tests (superseded by LAION EmoNet voice pipeline).
Documentation (v1.4.2)
- Added JOSS cover letter (
paper/cover_letter.md). - Updated paper bibliography and CITATION.cff to v1.4.2.
Full Changelog: v1.3.0...v1.4.2
VideoAnnotator v1.3.0 - Production Reliability & Critical Fixes
Released: October 31, 2025 🎃
This release addresses critical production blockers identified during client integration testing and establishes a production-ready foundation for JOSS publication.
Highlights
Core Improvements
- Job Cancellation: Cancel running jobs via API with proper GPU cleanup and worker management
- Persistent Storage: Configurable
STORAGE_DIRwith retention policies - no more data loss on restart - Config Validation: Schema-based validation catches errors before job submission
- Secure by Default:
AUTH_REQUIRED=truewith automatic API key generation and restricted CORS
Infrastructure
- Package Namespace: Migrated to modern
videoannotator.*namespace (PEP 517/518) - Enhanced Diagnostics: New CLI commands (
diagnose system/gpu/storage/database/all) - Environment Config: 19 configurable environment variables with full documentation
Quality & Testing
- 720/763 tests passing (94.4%) - improved from 607 (79.6%)
- Fixed 113 tests with real audio/video fixtures
- ffmpeg installed across all Docker images
- Exceeds 95% target by 23 tests
Bug Fixes
- Fixed pipeline import and name resolution failures
- Added missing pipeline metadata
- Resolved ephemeral storage data loss risks
- Standardized error formats across all API endpoints
Documentation
- 10+ new documentation files
- Complete API documentation with curl examples
- JOSS reviewer quick start guide
- Security configuration guide
- Migration guide with automated script
Success Criteria - ALL MET ✅
- Zero job failures due to pipeline naming
- Zero data loss on server restart
- All running jobs cancellable via API
- Invalid configs rejected at submission
- Authentication required by default
- 84% task completion (56/67 tasks)
See CHANGELOG.md for complete details.
What's Next
v1.4.0 (Q2 2026): First Public Release + JOSS Paper submission
v1.2.2 - import fixes
Minor maintenance release.
Normalized internal imports (removed obsolete src. prefixes) resolving a server startup error.
Updated CLI server target to api.main:app and bumped version metadata.
No API or CLI breaking changes.
VideoAnnotator 1.2.1 – Registry Expansion & Stabilization
Highlights
- YAML-driven pipeline registry with richer taxonomy (family, variant, tasks, modalities, capabilities, backends, stability).
- Auto‑generated pipeline spec + emotion output format and validator.
- Standard error envelope + enriched system health endpoint.
- New face & voice emotion pipelines (OpenFace3 embedding, LAION face/voice, baseline emotion).
- Light post-freeze stabilization: optional legacy API key validation and Windows-safe ASCII logging.
Added
- Dynamic pipeline metadata exposure (/api/v1/pipelines, CLI videoannotator pipelines --detailed --json).
- Emotion schema + validator + naming conventions spec.
- Health endpoint now reports pipeline count, uptime, and queue snapshot.
- New pipelines registered (face_openface3_embedding, face_laion_clip, voice_emotion_baseline).
Changed
- Replaced legacy single category field with multi-dimensional taxonomy arrays.
- All pipeline discovery now sourced from registry (no hard-coded lists).
- Logging: removed emojis in runtime output in favor of [OK], [WARNING], [ERROR].
Compatibility
- Non-breaking for existing clients except: invalid API keys now correctly rejected (401).
- Anonymous endpoints remain accessible where previously allowed.
Upgrade Notes
If you referenced category, map logic to tasks, pipeline_family, or modalities.
Use: videoannotator pipelines --json for machine-readable metadata.
Regenerate pipeline spec after adding pipelines via the provided script.
VideoAnnotator v1.2.0 - REST API, Docker support, uv packaging
Major release featuring:
- Complete REST API with FastAPI and integrated background processing
- Modern Docker deployment system with CPU, GPU, and dev containers
- uv package manager migration for 10x faster dependency management
- Ruff integration for modern linting and formatting
- Comprehensive deployment documentation and troubleshooting
Production-ready features:
- Real-time job processing and status tracking
- Interactive API documentation at /docs
- Cross-platform compatibility and container orchestration ready
- Secure authentication framework with JWT tokens
- Complete backward compatibility with existing pipelines
Technical improvements:
- Fixed Docker builds with proper package management
- Optimized container sizes and build times
- Enhanced error handling and recovery systems
- Modern development workflow with integrated tooling