---
title: "2026-09-16 Factory framework and histo consumer port"
description: "Moved the standalone framework into a mono package and ported six fixed histo services in PR 404."
image: "https://docs.virdx.dev/img/virdx-social-card.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.virdx.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026-09-16 Factory framework and histo consumer port

## Work Done

Opened [mono PR #404](https://github.com/virdx/mono/pull/404) from branch
`feat/factory-framework-histo`, worktree
`~/work/worktrees/mono/factory-framework-histo`, based on origin/main 3714b940.
Commits: 9ff76c1a (histo app) and 5e2c876f (framework package).

Removed the standalone framework tests and its test task. Added
`packages/factory-framework` with existing CLI/FastAPI/local/Argo behavior, direct
real vxData clients and private \_run_batch. Added `apps/factory-histo`, using six
fixed cohort services from the old registry with no public inference knobs or
imports from the old app. Preserved scopes, completion predicate, resource IDs,
lineage and provenance; persist successful slides before processing the next.

One shared CUDA image serves API and workers; registration does not import heavy
inference dependencies. App owns Argo pod secrets, model/storage mounts and a
1024 GiB generic ephemeral scratch PVC (lvm). Framework worker_disk remains
unenforced; app supplies actual scratch explicitly. Default local backend uses
real vxData. No mocks/client_factory or tests were added. Existing apps/factory
and dashboard files remain unchanged; no deployment/cutover performed.

Validation passed: Nx format-check/lint/typecheck/build for both new projects,
boundary checks, native real SDK/registration imports, six services and twelve
OpenAPI routes without histo/Torch imports or network calls, wheel builds, conda
recipe rendering, Docker base-tag existence, diff whitespace check. Nx graph has
only package dependencies. Full CUDA image build, GPU inference, live vxData
reads/writes and Argo submissions were not performed. Generated Pixi locks make
up most of the PR diff. Working tree clean after push.

## Pitfalls

The old histo worktree was at 0.0.120; use updated origin/main source or the pinned
runtime for params, not stale cached source. The runtime is pinned to 0.0.122 and
uses its actual dataclasses rather than copied schema mirrors. Authless archive
inspection returned 401; no GPU-runtime execution is claimed.

Legacy apps/factory pre-commit hooks match the apps/factory-histo prefix and print
a staging warning for apps/factory/-histo. Their commands passed, but the new app
was validated separately through its own Nx targets. No hooks bypassed.
A framework-only first commit was rejected by the lock consistency hook because
the consumer's new lock was outside that partial commit. App then framework
commits succeeded; reviewers should use the final combined tree.

The new framework intentionally lacks old sync/jobs/in-flight suppression APIs.
Do not run legacy and new histo triggers concurrently during cutover.

## Improvements

Continue work in the mono worktree/PR, not by restoring the standalone tests or
client injection. Before deployment verify actual GPU model mounts, credential
permissions, identity/admission rules and CA trust. Keep dashboard changes separate
until requested. Update old histo SOP file references only after rollout is real;
this PR is a proposed new app, not yet the production execution path.

Source: https://docs.virdx.dev/knowledge/inbox/2026-09-16-histo-factory-framework-mono-port/index.mdx
