Bug
`pycodeloop serve --base-url ...` (and the equivalent flag on `chat`/`run`) accepts a value but it has no effect anywhere.
Trace
- `pycodeloop/cli/flow.py` `resolve_provider()`: only reads `base_url` inside the `elif provider_name == "generic":` branch, setting `provider_kwargs["base_url"] = base_url`.
- That flows into `get_provider("generic", model=..., url=..., base_url=...)` → `GenericProvider(**kwargs)`.
- `GenericProvider.init` (`pycodeloop/providers/generic.py`) has no `base_url` parameter, so it falls into `**kwargs` → `super().init(..., **kwargs)` → `Provider.init` (`pycodeloop/abc/provider.py`) stores it as `self.extra["base_url"]`.
- `self.extra` is never read anywhere in the codebase (confirmed via `grep -rn base_url pycodeloop/` — only `cli/flow.py`, `cli/serve.py`, `cli/commands/run.py`, `cli/commands/chat.py`, `cli/main.py` reference the name, all just plumbing the option through, never consuming it to affect a request).
- It's also silently ignored for JSON-config/bundled-template providers entirely (the `is_json_config` branch never even looks at `base_url`).
Expected
Presumably the intent (per its help text: "Override the API endpoint (local/self-hosted servers)") is to let a self-hosted/proxy endpoint override the provider's configured URL — e.g. point a named provider template at an internal gateway without editing its JSON. Needs either:
- wiring it into `GenericProvider` to actually override `self.url` (for both the `generic` and JSON-config paths), or
- removing the flag if it's not meant to do anything yet.
Bug
`pycodeloop serve --base-url ...` (and the equivalent flag on `chat`/`run`) accepts a value but it has no effect anywhere.
Trace
Expected
Presumably the intent (per its help text: "Override the API endpoint (local/self-hosted servers)") is to let a self-hosted/proxy endpoint override the provider's configured URL — e.g. point a named provider template at an internal gateway without editing its JSON. Needs either: