Skip to content

Commit 33ea4cf

Browse files
InfantLabclaude
andcommitted
docs(changelog): record clean-install fixes under v1.4.4
First-run health-check warmup/viewer-login smoothing and the silent face-pipeline-alias fallback fix, both found during a clean-install test and pushed straight to master, weren't yet in the changelog. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1 parent 90f0df6 commit 33ea4cf

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ This release responds to JOSS pre-review feedback (openjournals/joss-reviews#101
3232
- **Person-tracking contract gap**: COCO output was missing `person_id`/`person_label`/`label_confidence`/`labeling_method` when identity labeling was disabled, which VAV requires as non-optional; added sensible fallback defaults and corrected the pipeline's self-declared schema for `image_id`.
3333
- **`setup-db` DetachedInstanceError**: `create_admin_user()` returned a detached SQLAlchemy ORM object after closing its session, raising `DetachedInstanceError` on the first command in the README quickstart; fixed with an explicit `db.refresh()`.
3434
- **Hidden CLI commands**: The `if __name__ == "__main__"` guard sat before `validate-emotion`, `generate-token`, and `setup-db` were registered, hiding them from `python -m videoannotator.cli --help`; moved the guard to the end of the file.
35+
- **First-run friction**: Torch/CUDA warmup ran lazily on the first `/api/v1/system/health` request (charging its ~20-40s cost to whichever client asked first, typically the viewer right after a fresh install); moved to a startup background task. Added a `/viewer-connect` bridge route so `setup-db`/`generate-token` can hand out a one-click login link instead of asking users to paste an API key into the viewer's Settings page.
36+
- **Silent face-pipeline fallback**: `PipelineLoader.load_all_pipelines()` assigned the `face` alias to whichever variant imported successfully first, ignoring the stability field — if the stable DeepFace-based pipeline failed to load, `face` silently fell through to an experimental one instead of erroring. Candidates are now ranked stable > beta > experimental before the alias is assigned. `OpenFace3Pipeline.process()` also now fails fast with one clear error when `initialize()` has already failed, instead of one "not initialized" error per frame.
3537

3638
#### Documentation
3739

0 commit comments

Comments
 (0)