mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
666312dfbdsettled the catalog client on the dedicated LibreTranslate. One engine cannot be compared against itself, so the direct path had no way to improve on a language it translates badly: of the 2854 entries of the `ko` catalog it produced 1 translated entry and 2704 `structure` rejections. The client now asks the gateway, which fronts several engines and keeps a history of which one survives a given signature. Protected spans are masked as `<x id="N"></x>` before the request and declared per item, so the gateway can reject an answer that altered them instead of passing it on. `_reask` then retries each rejected entry with the engine that produced it in `exclude`, which reaches a different backend rather than the same one. The same catalog measured 17 translated entries with 2649 rejections once the gateway checked the markup, and 331 with 796 once the retry could exclude. The full picture a rejection needs is only available in the client: 2431 of those 2649 structure rejections involve markup the masking hides from the gateway, so the engine-switching decision belongs on this side of the call. `server()` reuses a gateway that already answers and otherwise deploys the bundle the gateway needs. It does not reintroduce the throwaway container666312dfbdremoved: there is no `docker run` here, the roles deploy through the normal path and their models still come from the role images built through the package cache. `redeploy=true` is offered because the reuse check only asks whether a gateway answers, which cannot see that the gateway's own code changed since it started. A run refuses outright while a deploy is in progress, because both touch the same container stack, and leaves the deploy alone. `deployed()` additionally requires a non-empty catalogue, so a gateway that answers while serving no pairs counts as not ready rather than as a backend that refuses everything. `probe(url)` is split out of `deployed(root)` so one readiness check serves a single engine and the gateway alike. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>