mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
server() preferred the deployed service and fell back to a throwaway container when it did not answer. That container ran the upstream image directly, with LT_UPDATE_MODELS on and neither the package-cache CA nor the argos-net.com hijack, so it refetched gigabytes from upstream on every run while the deployed service already carries those models in its image, installed through the cache at build time. The fallback is gone. It was reached by accident rather than by failure. deploy() ended in await_service(), which polled for 300 seconds; the first start of the service installs its models and takes far longer, so the wait expired, deploy() reported nothing running, and the caller spawned the throwaway beside the service it had just deployed successfully. await_service and SERVICE_TIMEOUT_SECONDS are removed, leaving the single readiness wait the client already performs with the budget those models need. Step 0 of the deploy also stopped forcing a recreate. It rebuilt a healthy lane on every invocation and took whatever model install was in flight with it; compose recreates on a changed configuration by itself. The wait no longer looks like a hang: it reports how many of the wanted languages the server offers, which ones are still missing, how long it has waited against its budget, and what the lane has pulled. i18n-tune waits the same way and gets the same report. service_url() and lane_container() replace the two places that each rebuilt one of those strings, and deploy() reads the environment once. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>