deploy/openai_server_push.py: launch_openai_server serves a LoRA natively over
the base (vLLM --enable-lora --lora-modules, SGLang --enable-lora --lora-paths)
or merged (--merge, merge_lora_adapter); builds the exact argv; launches in its
own session with server.log / server.pid / launch.json under
out/runs/<run>/serve/<to>/; polls /v1/models (+ vLLM /health) until the tag is
listed; optionally swaps mindX's fallback (provider vllm|sglang).
stop_openai_server SIGTERMs the process group and verifies it is gone. CPU
hosts get bfloat16, VLLM_CPU_KVCACHE_SPACE, SGLang --device cpu; quantized
checkpoints and tensor_parallel > 1 are refused without a GPU; a missing server
is reported with its install hint. Results never raise.
CLI: --dry-run, --stop, --merge, --host, --port, --dtype, --server-bin,
--server-arg, --ready-timeout, --cpu-kvcache-gib. Gradio Serve room offers
sglang. Docs: docs/serve.md (flag provenance), cli.md, README, NAV, CHANGELOG,
llm.txt. Tests: 21 new (Popen/which monkey…