Keep background models on the conversation gateway - #262
Conversation
|
We require contributors to sign our Contributor License Agreement, and we don't have you on file. In order for us to review and merge your code, please contact @crawshaw at david@bold.dev to get yourself added. |
|
Hi! Can you explain what you're trying to accomplish here? |
Match workhorse models by provider, source, and base URL so background requests cannot cross user accounts. Return JIT installation failures as explicit Bash and Shell tool errors instead of swallowing them. Co-authored-by: Shelley <shelley@exe.dev>
fd1369e to
d15aab9
Compare
|
We require contributors to sign our Contributor License Agreement, and we don't have you on file. In order for us to review and merge your code, please contact @crawshaw at david@bold.dev to get yourself added. |
@philz Hi of course. Since we run a fleet of Shelley instances whose catalogs can hold models from more than one gateway for the same provider (distinct base URLs and sources, same Provider), with provider-only matching, a conversation running on a model from one gateway can have its background calls land on a cheap model registered on a different gateway. So the PR pins the workhorse to the conversation model's Source + BaseURL, falling back to the conversation model. If the cross-gateway fallback is intentional, please let me know and we'll adjust on our side instead. The JIT-install half is how this surfaced for us, twice: once the install-validation call went to a cross-gateway workhorse whose gateway was out of usage, and once an install-path request hit a URL our egress allowlist doesn't permit. In both cases the actual error was only in a debug log and the agent just saw command not found. Returning the install failure as the tool error makes that diagnosable. Happy to explain further and split the two changes into separate PRs if that's easier. |
Match workhorse models by provider, source, and base URL so background requests cannot cross user accounts. Return JIT installation failures as explicit Bash and Shell tool errors instead of swallowing them.