Work Done
Updated framework PR #404 at 8c421281
and rebased histo PR #406 at 304b8769.
Framework workers receive optional HF_TOKEN from hf-token-felix-knispel / HF_TOKEN;
FACTORY_HF_TOKEN_SECRET selects another secret. Verified the existing namespace
secret name/key without exposing its value. No cluster mutations.
The private histo model loader uses huggingface_hub to download RendeiroLab/LazySlide-models / grandqc/Tissue_Detection_MPP10.pth at revision c3a6d879e4c3f06db2ae2673d3fdddba2683e73d. Cache is FACTORY_TMP_DIR/huggingface, or /cache/huggingface in worker pods. One lookup/download per batch, reused across slides; new worker scratch starts fresh. API startup does not load/download models. Added explicit huggingface_hub dependency and refreshed app lock. No tests added.
Real public download validated: 26640273 bytes, SHA256 0e3577628a553774419a5b87a2947531988e07175b9e1a8048f53b6188f4d76e. Offline reuse, API startup, generated secret reference, lint and type checks pass. No GPU inference, image build, or live cluster job validation. User’s dirty framework manifest preserved byte-for-byte; lock generation used committed dependencies.
Lessons Learned: Pitfalls
The previous recap’s requirement to bake weights into the consumer image is superseded. The user supplied a public pinned Hugging Face artifact, so runtime fetching removes that deployment prerequisite. Do not restore the fixed /opt/models path or host mounts. The legacy Factory hook still matches factory-histo incorrectly; independent checks validated the actual app.
Lessons Learned: Improvements
Pin model revision, use pod scratch cache, and refer to secrets rather than copying token values into workflow manifests. Verify the real file and offline cache reuse through the project’s own environment without importing the GPU stack.