Reject stale source during Vast image publication

This commit is contained in:
Ken Simpson
2026-08-28 17:22:27 -07:00
parent 7beaba0454
commit 809104fcd5
6 changed files with 154 additions and 11 deletions
+1
View File
@@ -8,6 +8,7 @@
- Automatic publication must remain fail-closed: missing `uv`, Docker, registry authentication, a failed build/push, a missing digest, or a second mismatched worker cancels preparation with the manual build command and configuration steps.
- Vast can report a contract as successful and start the worker/watchdog internally while its advertised direct port mapping continues to refuse connections. Preserve both the direct and `ssh*.vast.ai` proxy endpoints in lease state, try the proxy during every failed direct readiness probe, and persist whichever endpoint first returns valid worker metadata so later operations do not fall back to the dead mapping.
- A custom-node deployment can contain a stale `.venv` whose interpreter symlink and `pyvenv.cfg` describe different Python installations. Automatic image publication must invoke the build script directly with `sys.executable` so neither project discovery nor a presumed virtualenv location can select that copied environment, and failure summaries must skip traceback footers such as `<no Python frame>` in favor of the substantive error line.
- A long-running ComfyUI process can retain fingerprint A while hot-deployed source on disk has fingerprint B. Pass A into the build subprocess, have it report and compare B before exporting a Docker context, and refuse to publish or rent until ComfyUI restarts; adopting B's digest while retaining A in runtime configuration guarantees a second drift failure.
- The pinned vLLM wheel is large enough that pip's default five resumptions and 15-second socket timeout can be exhausted by an unstable connection during an SSH/Vast worker build. Give the accelerator-wheel layer an extended timeout and bounded resume budget while leaving earlier package layers unchanged so Docker can reuse their successful cache entries.