Work Done
Implemented the existing public functions in ~/work/factory-framework; no public
functions added or removed. Split compute backends into backends/base.py,
memory.py, and argoworkflows.py. Runtime handles registration, validation,
batching and direct worker execution. CLI and typed FastAPI endpoints delegate to it.
Two optional constructor arguments support concrete needs: client_factory for
substituting a local data client; Argo pod_spec for worker secrets/mounts.
Argo uses HTTP submission, lazy token lookup, one shared consumer image, resource
requests/limits, and a base64 JSON worker payload limited to 64 KiB before encoding.
GPU product labels were checked against the local infra_k8s policy. No jobs submitted.
Usage example uses SQLite and has working Pixi check/infer/serve tasks plus input JSON. Updated packaging, locks and README; added an illustrative CPU Dockerfile. Image not built. Framework directory has no Git metadata, so no application commit.
Validation: pixi run test passes 21 tests, including separate CLI processes,
per-service HTTP schemas, persistence, failures, mocked Argo submission, and local
execution of its generated worker command without Argo credentials. Also ran the
installed example CLI and a real Uvicorn server: five pending inputs became five
completed outputs; explicit HTTP inference succeeded and invalid inputs returned 422. Direct worker wrote expected JSON. Stopped the local server afterward.
Source parses under Python 3.11 grammar; execution used the existing Pixi Python.
Pitfalls
Do not require the vxData package or credentials merely to import a deployment; the default client is imported only when needed. Worker commands override image commands, so Python and Factory must already be on PATH without activation in an entrypoint. Local SQLite is not shared storage across Kubernetes pods.
Argo transport/manifest behavior is tested locally, not validated against cluster admission or credentials. No automatic retries, job-state API, atomic deduplication or submission rollback were added. These are not claimed capabilities. Pixi and Starlette emit unrelated deprecation warnings, but tests pass.
Improvements
Keep future work inside the existing minimal API unless a concrete need justifies an extension. The runnable local example and generated-worker-command test now provide a repeatable bridge check without a live vxData or Kubernetes deployment.