fix: direct venv python in entrypoint, fix INSIGHTFACE_HOME path, add badges

- entrypoint.sh: replace `uv run` with `/app/.venv/bin/python` to skip
  uv's sync check which was re-downloading ruff and rebuilding the package
  on every container startup
- compose.yml, .env.example: fix INSIGHTFACE_HOME /models → /models/.insightface;
  InsightFace appends models/ to root, so /models produced /models/models/buffalo_l
- README.md: add Immich and Frigate badges from upstream
- CHANGELOG.md, pyproject.toml, uv.lock: bump to 0.2.1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-12 02:10:01 +00:00
co-authored by Claude Sonnet 4.6
parent 4529a63082
commit c3bf81d490
7 changed files with 14 additions and 6 deletions
+1 -1
View File
@@ -33,7 +33,7 @@ FORCE_CPU=false
ENABLE_CACHE=true
CACHE_DIR=/app/.if_cache
HF_HOME=/models/huggingface
INSIGHTFACE_HOME=/models
INSIGHTFACE_HOME=/models/.insightface
# ── Tracker overrides (one-shot — remove after use) ───────────────────────────
# DRY_RUN=true # Preview selection without downloading/uploading
+7
View File
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [0.2.1] - 2026-06-12
### Fixed
- **Container startup reinstalling packages**: `entrypoint.sh` used `uv run`, which performs a sync check on every startup and re-downloaded `ruff` and rebuilt the package each time. Replaced with direct `.venv/bin/python` calls to skip the sync entirely.
- **InsightFace double `models/` path**: `INSIGHTFACE_HOME=/models` caused InsightFace to download Buffalo_L to `/models/models/buffalo_l` (InsightFace always appends `models/` to the root). Updated default in `compose.yml` and `.env.example` to `/models/.insightface`.
## [0.2.0] - 2026-06-12
First release of winnow. Forked from [if-curator](https://github.com/ds-sebastian/if_curator) by Sebastian and rewritten for headless Docker deployment.
+1
View File
@@ -1,4 +1,5 @@
[![Publish Docker Image](https://github.com/sudolulo/winnow/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/sudolulo/winnow/actions/workflows/docker-publish.yml) [![Release](https://github.com/sudolulo/winnow/actions/workflows/release.yml/badge.svg)](https://github.com/sudolulo/winnow/actions/workflows/release.yml) [![Lint](https://github.com/sudolulo/winnow/actions/workflows/lint.yml/badge.svg)](https://github.com/sudolulo/winnow/actions/workflows/lint.yml) [![Test](https://github.com/sudolulo/winnow/actions/workflows/test.yml/badge.svg)](https://github.com/sudolulo/winnow/actions/workflows/test.yml)
[![Immich](https://img.shields.io/badge/Immich-v1.106%2B-violet?style=for-the-badge)](https://immich.app) [![Frigate](https://img.shields.io/badge/Frigate-Ready-green?style=for-the-badge)](https://frigate.video)
**Docs:** [Setup Guide](docs/setup.md) · [Troubleshooting](docs/troubleshooting.md) · [FAQ](docs/faq.md)
+1 -1
View File
@@ -38,7 +38,7 @@ services:
- ENABLE_CACHE=true
- CACHE_DIR=/app/.if_cache
- HF_HOME=/models/huggingface
- INSIGHTFACE_HOME=/models
- INSIGHTFACE_HOME=/models/.insightface
# ── Tracker overrides (one-shot, remove after use) ────────────────────
# - DRY_RUN=true # Preview selection without downloading/uploading
+2 -2
View File
@@ -4,13 +4,13 @@ export PYTHONUNBUFFERED=1
# 1. Run the job immediately on startup
echo "▶ Running on startup..."
uv run python -m winnow.cli
/app/.venv/bin/python -m winnow.cli
# 2. If a schedule exists, start the scheduler
if [ -n "${CRON_SCHEDULE:-}" ]; then
echo "▶ CRON_SCHEDULE set to: $CRON_SCHEDULE"
echo "▶ Switching to scheduled mode..."
exec uv run python3 /app/scheduler.py
exec /app/.venv/bin/python /app/scheduler.py
else
echo "▶ No schedule set, exiting."
fi
+1 -1
View File
@@ -1,6 +1,6 @@
[project]
name = "winnow"
version = "0.2.0"
version = "0.2.1"
description = "Immich to Frigate training sets"
license = "MIT"
requires-python = ">=3.12"
Generated
+1 -1
View File
@@ -2289,7 +2289,7 @@ wheels = [
[[package]]
name = "winnow"
version = "0.2.0"
version = "0.2.1"
source = { editable = "." }
dependencies = [
{ name = "croniter" },