Local Runtime Assembly
Date: 2026-05-05
Objective
Turn the individual verified local slices into a single local runtime map for the Hetzner rebuild.
This is not a production deployment yet. It is the local assembly checklist that shows which services exist, which commands start them, which artifacts are currently generated, and which blockers remain.
What Was Added
scripts/local-runtime-assembly.mjsRead-only runtime map for infrastructure, backend services, frontend surfaces, and Python services.package.jsonscripts:legacy:runtime:planlegacy:runtime:statuslegacy:runtime:missinglegacy:runtime:smoke:non-python
The assembly map script intentionally does not start blocking dev servers. The smoke script starts the non-Python app services, proves health, and then shuts down only the app processes it started.
Local Commands
Print the intended local start order:
npm run legacy:runtime:plan
Show current env template, artifact, container, and health status:
npm run legacy:runtime:status
Show required runtime files that are not currently generated:
npm run legacy:runtime:missing
Run the repeatable non-Python smoke:
npm run legacy:runtime:smoke:non-python
Assembly Order
- Start base infrastructure:
npm run legacy:infra:up
- Start verified backend services:
npm run studio-api:start
npm run zweistein-server:start
- Start verified frontend surfaces:
npm run zweistein-admin:dev
npm run zweistein-widget:dev
npm run picasso-houston:dev
npm run picasso-editor:dev
npm run picasso-widget:dev
- Continue Python service verification:
npm run zweistein-query:docker-torch-probe
npm run zweistein-query:docker-build
npm run zweistein-ingestion:docker-build
Current Status Evidence
Latest coordinated non-Python runtime smoke:
npm run legacy:runtime:smoke:non-pythonnow repeats this proof in one command.- Studio API, Zweistein Server, Zweistein Admin, Zweistein Embedding Widget, Picasso Houston, Picasso Editor, and Picasso Widget were running together.
npm run legacy:runtime:statusreported HTTP 200 for all of those non-Python services.npm run zweistein-server:db-statusreportedZweistein public tables: 39.- The smoke is documented in
porting/2026-05-05-local-non-python-runtime-smoke.md.
Latest npm run legacy:runtime:status result:
- Postgres container: up.
- Redis container: up.
- MinIO container: up.
- Weaviate container: not created because the optional AI infra profile is not currently running.
- Studio API env template and runtime artifact: present.
- Studio API was rebuilt with
npm run studio-api:build, started withnpm run studio-api:start, andnpm run studio-api:healthreturned HTTP 200 withdata.statusset toOk. The local process was stopped after the health proof. - Zweistein Server env template and runtime artifact: present, but service is not currently running.
- Zweistein Admin env template and runtime artifact: present.
- Zweistein Admin was rebuilt with
npm run zweistein-admin:build, started withnpm run zweistein-admin:dev, andnpm run zweistein-admin:healthreturned HTTP 200 onhttp://127.0.0.1:5176/ai/. The local process was stopped after the health proof. - Zweistein Embedding Widget env template and build artifact: present, but dev server is not currently running.
- Picasso Houston env template and build artifact: present, but dev server is not currently running.
- Picasso Editor env template and build artifact: present, but dev server is not currently running.
- Picasso Widget env template and build artifact: present, but dev server is not currently running.
- Zweistein Query Engine env template and local Python environment: present, but HTTP runtime is not currently running.
- Zweistein Ingestion Worker env template and local Python environment: present, but worker processing is not verified.
Latest npm run legacy:runtime:missing result:
No required runtime assembly files are missing.
Interpretation
The local rebuild is now mapped and the non-Python platform can run together.
The remaining local runtime gap is Python:
npm run zweistein-query:docker-torch-probe
npm run zweistein-query:docker-build
npm run zweistein-ingestion:docker-build
The next Python/Hetzner step should run the Query Engine Docker build on native Linux amd64 or a Hetzner staging box, because Docker Desktop amd64 emulation on this Mac became unreliable during native spider-rs wheel build.
Not Yet Done
- No complete all-service local runtime is currently running because Python services are still excluded.
- Python Query Engine is not fully built or running.
- Python Ingestion Worker is not fully built or running.
- End-to-end flow from Studio Editor to published Houston App to Zweistein Agent/AI runtime is not verified yet.
- The local disk is very tight after regenerating Node artifacts, so the Python Docker build should move to native Linux amd64 or a Hetzner staging box.