mirror of
https://github.com/alibaba/open-code-review.git
synced 2026-08-21 14:44:56 +00:00
* feat(provider): add editable Base URL step to official provider wizard The official-provider tab in `ocr config provider` only captured API key and model, with no way to override a preset provider's Base URL. The resolver already honored `entry.URL` over `preset.BaseURL`, but the TUI never exposed it — litellm (a self-hosted gateway rarely at http://localhost:4000/v1) was the canonical pain point. Add a Base URL step to the official-tab flow (stepModel -> stepBaseURL -> stepAPIKey), pre-filled with the effective URL (configured override or preset default). Persist `providers.<name>.url` only when the entered value differs from the preset default, so the preset remains the fallback and configs without an explicit url are unchanged. Custom/manual tabs are unaffected. Add resolver regression tests (litellm override + default fallback) and TUI tests (pre-fill with preset/override, Esc navigation, persistence of override vs. clearing on preset default). Update the four official-tab tests that assumed stepModel -> stepAPIKey to traverse the new step. * feat(provider): surface override Base URL in model picker and document it With the wizard now able to set a Base URL override for built-in providers, make the override visible and discoverable. - `ocr config model` shows the effective Base URL for a preset provider (the configured `providers.<name>.url` override, or the preset default when none is set) so users can confirm their gateway is in use. - The provider-wizard model-selection step shows the same effective URL via a tab-aware `effectiveBaseURL()` helper (official override/preset, or custom provider URL). - Document `providers.<name>.url` as a built-in provider override in the configuration docs, with a litellm example and the preset-as-default semantics; note the wizard's editable Base URL step. Add tests covering the model-selector display (override vs preset default) and the wizard's effectiveBaseURL resolution. * fix(provider): address PR review — URL trim, validation, dead code, Esc display Address 4 of 5 code review findings on PR #729: 1. URL trim consistency (provider_cmd.go): trim the Base URL once and use the trimmed value for both comparison and persistence, preventing whitespace-polluted URLs from being written to config. 2. URL format validation (provider_cmd.go): validate that the Base URL has an http/https scheme and non-empty host before persisting, giving immediate feedback instead of a runtime failure. Rejects malformed values like bare hosts or ftp:// schemes. 3. Dead code removal (provider_tui.go): remove the init-time pre-fill of officialURLInput that is always overwritten by loadOfficialURL() when the user enters the Base URL step. Pre-fill logic now lives in a single place. 4. effectiveBaseURL reflects pending edit (provider_tui.go): when the user edits the Base URL and presses Esc back to model selection, effectiveBaseURL() now returns the in-progress value from officialURLInput instead of the stale on-disk config. The SSRF/private-IP finding (#2 in review) is not addressed — it is a false positive for a local CLI tool where localhost and private network endpoints are the primary use case (the litellm preset default is http://localhost:4000/v1). * feat(provider): implement URL trimming and validation for provider configuration * fix(provider): remove obsolete official URL handling --------- Co-authored-by: Kite <254839944+lizhengfeng101@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| apply_provider_field_test.go | ||
| arg_errors.go | ||
| arg_errors_test.go | ||
| background_file.go | ||
| background_file_test.go | ||
| budget_output_test.go | ||
| compat_test.go | ||
| completion.go | ||
| config_cmd.go | ||
| config_cmd_test.go | ||
| config_dispatch_test.go | ||
| config_runset_test.go | ||
| config_unset_error_test.go | ||
| delegate_cmd.go | ||
| delegate_exec_test.go | ||
| delegate_helpers_test.go | ||
| emit_run_result_test.go | ||
| flag_suggest.go | ||
| flag_suggest_test.go | ||
| flags_test.go | ||
| git.go | ||
| git_test.go | ||
| llm_cmd.go | ||
| main.go | ||
| manual_e2e_retry_test.go | ||
| misc_helpers_test.go | ||
| output.go | ||
| output_helpers_test.go | ||
| output_manifest_test.go | ||
| output_test.go | ||
| parent_cmd_test.go | ||
| procattr_unix.go | ||
| procattr_windows.go | ||
| provider_cmd.go | ||
| provider_cmd_test.go | ||
| provider_config_apply_test.go | ||
| provider_tui.go | ||
| provider_tui_cpinput_test.go | ||
| provider_tui_customform_test.go | ||
| provider_tui_deleteconfirm_test.go | ||
| provider_tui_editsave_test.go | ||
| provider_tui_funcs_test.go | ||
| provider_tui_manualenter_test.go | ||
| provider_tui_modeltui_test.go | ||
| provider_tui_persist_test.go | ||
| provider_tui_rollback_test.go | ||
| provider_tui_savefail_test.go | ||
| provider_tui_test.go | ||
| retry_fake_llm_test.go | ||
| retry_report_e2e_test.go | ||
| retry_report_render_test.go | ||
| review_cmd.go | ||
| review_cmd_test.go | ||
| review_helpers_test.go | ||
| review_mcp_more_test.go | ||
| review_resume_more_test.go | ||
| root.go | ||
| rules_check_test.go | ||
| rules_cmd.go | ||
| sarif.go | ||
| sarif_test.go | ||
| scan_cmd.go | ||
| scan_cmd_test.go | ||
| scan_helpers_test.go | ||
| scan_resume_more_test.go | ||
| session_cmd.go | ||
| session_cmd_test.go | ||
| session_complete_test.go | ||
| session_display_more_test.go | ||
| shared.go | ||
| shared_flags.go | ||
| shared_llmruntime_test.go | ||
| shared_test.go | ||
| shell_unix.go | ||
| shell_windows.go | ||
| smallfiles_test.go | ||
| version.go | ||
| viewer_cmd.go | ||
| zero_args_test.go | ||