Work Done
User explicitly superseded the earlier requirement to leave legacy Factory unchanged. Updated mono #406, stacked on #404, at 7eba9a96. Removed apps/factory-histo and migrated all seven current jobs into apps/factory: six fixed histo cohorts and Viseg T2/t2_tse_tra anatomy. Registration is factory.deployment:factory. Replaced legacy API/sync/rules/custom Argo/container modules with framework check/infer/worker behavior. Old inference/rules/sync/status endpoints and in-flight suppression are intentionally gone; dashboard unchanged.
One CUDA13 image, Dockerfile.api, retains the existing Tekton factory-api mapping; Dockerfile.inference and its second build were removed. Deployment docs identify external infra_k8s/current/inference/deployment.yaml changes needed to reuse inference/inference-api: same immutable digest for API/workers, backend and SDK env, secret-backed raw Argo bearer. Existing mounted SA token is not read by the framework REST backend. No actual build, rollout, cluster writes or GPU runs. Framework still owns worker secrets, scratch/shm/GPU; no host mounts or consumer pod-spec option. Do not put HF-specific plumbing back into either mono PR.
Nx format/lint/typecheck/build, dependency boundaries, shell syntax, 14-route model-free API startup, and worker pod checks pass. No new test suite. User dirty framework pyproject.toml restored exactly and left unstaged; framework tree clean.
Rollout blockers: release histo #345 and update current0.0.122 pin; provision fixed Viseg model c2fe25b446484539bf8318bb48fe6c76 checkpoints under /opt/models/viseg-anatomy/5fold_anatomy_ensemble_25-08-202512:03:26. The image does not yet bundle those files and old MinIO is unavailable. Audit old callers before replacing the API. Read-only inspection found no Factory CronJob or /sync caller in infra_k8s current; external callers remain unverified.
The separate histo #345 validation finished: all four existing GrandQC tests pass; real pinned file download/hash and loading into real model on CPU pass. Full mypy only reports existing macOS posix_fadvise diagnostics. PR body updated accordingly.
Lessons Learned: Pitfalls
Path-limited git stash can retain already staged changes outside its path. Here, previously staged factory-histo deletions conflicted with committed migration renames on apply. Kept committed migration files, unstaged restored user manifest and verified its original bytes. Avoid staged changes before stashing an unrelated user edit. A child inspected the wrong checkout and incorrectly assumed raw pod-spec support; corrected it against the explicitly assigned worktree before documenting behavior.
Lessons Learned: Improvements
Keep the consumer registration and per-service check/infer implementations; delete old orchestration rather than wrapping it. Separate code migration from actual GitOps rollout and model provisioning, and state the remaining blockers explicitly.