Problem
Dockerfile:15 (and Dockerfile.demo:17):
RUN pip install --no-cache-dir taskdog-ui[server]
release.yml builds and pushes this image tagged {{version}} right after publish-pypi, with no version pin and no PyPI-propagation wait — so ghcr.io/.../taskdog:0.26.0 can legitimately contain 0.25.x if the index hasn't propagated.
Separately, no CI job ever builds the Dockerfiles; a broken Dockerfile is only discovered at release time.
Direction
ARG TASKDOG_VERSION + pip install "taskdog-ui[server]==${TASKDOG_VERSION}" fed from github.ref_name in the release workflow (add a retry loop for index propagation).
- Add a
docker/build-push-action job with push: false to ci.yml.
Found during repo-wide audit, 2026-07-25.
Problem
Dockerfile:15(andDockerfile.demo:17):RUN pip install --no-cache-dir taskdog-ui[server]release.ymlbuilds and pushes this image tagged{{version}}right afterpublish-pypi, with no version pin and no PyPI-propagation wait — soghcr.io/.../taskdog:0.26.0can legitimately contain 0.25.x if the index hasn't propagated.Separately, no CI job ever builds the Dockerfiles; a broken Dockerfile is only discovered at release time.
Direction
ARG TASKDOG_VERSION+pip install "taskdog-ui[server]==${TASKDOG_VERSION}"fed fromgithub.ref_namein the release workflow (add a retry loop for index propagation).docker/build-push-actionjob withpush: falseto ci.yml.Found during repo-wide audit, 2026-07-25.