refactor(experiments,init): rename eval_model → eval_provider, add XDG parity test#4999
Merged
Merged
Conversation
…G parity test Replace ExperimentConfig.eval_model: Option<String> with eval_provider: ProviderName to align with the multi-model design principle. An empty value falls back to the primary provider, preserving the previous Option<String>: None semantics. Migration step 58 (migrate_eval_model_to_provider) handles in-place config upgrade. Init wizard and --migrate-config updated. Bootstrap::build_eval_provider now uses create_named_provider (standard registry pattern). Extracts wizard_default_config_path() helper and adds xdg_fallback_matches_wizard_default test pinning path parity between init wizard and runtime resolve_config_path. BREAKING CHANGE: experiments.eval_model is removed. Update [experiments] sections to eval_provider = "<provider-name>"; run zeph --migrate-config to upgrade. Closes #4987, #4993
bug-ops
enabled auto-merge (squash)
June 7, 2026 13:41
bug-ops
added a commit
that referenced
this pull request
Jun 7, 2026
…G parity test (#4999) Replace ExperimentConfig.eval_model: Option<String> with eval_provider: ProviderName to align with the multi-model design principle. An empty value falls back to the primary provider, preserving the previous Option<String>: None semantics. Migration step 58 (migrate_eval_model_to_provider) handles in-place config upgrade. Init wizard and --migrate-config updated. Bootstrap::build_eval_provider now uses create_named_provider (standard registry pattern). Extracts wizard_default_config_path() helper and adds xdg_fallback_matches_wizard_default test pinning path parity between init wizard and runtime resolve_config_path. BREAKING CHANGE: experiments.eval_model is removed. Update [experiments] sections to eval_provider = "<provider-name>"; run zeph --migrate-config to upgrade. Closes #4987, #4993
bug-ops
added a commit
that referenced
this pull request
Jun 7, 2026
…se wheel) (#4996) * fix(tui): add transcript scroll in Insert mode via PageUp/PageDown and mouse wheel In Insert mode, PageUp/PageDown were silently ignored and mouse wheel events were dropped entirely, making the transcript appear unscrollable. - event.rs: add AppEvent::Mouse(MouseEvent) variant; forward CrosstermEvent::Mouse instead of discarding it - lib.rs: enable EnableMouseCapture in init_terminal and matching DisableMouseCapture in restore_terminal and panic hook; remove EnableAlternateScroll/DisableAlternateScroll (mutually exclusive with mouse capture — native click-drag selection no longer supported, use Shift/Option to select text) - app/events.rs: handle_mouse maps ScrollUp/ScrollDown to ±3 lines, works in both Insert and Normal modes - app/keys.rs: handle_insert_scroll_keys handles PageUp (+10) and PageDown (-10); dispatched before history navigation so PageUp/PageDown are captured before Up/Down history check Closes #4988 * refactor(experiments,init): rename eval_model → eval_provider, add XDG parity test (#4999) Replace ExperimentConfig.eval_model: Option<String> with eval_provider: ProviderName to align with the multi-model design principle. An empty value falls back to the primary provider, preserving the previous Option<String>: None semantics. Migration step 58 (migrate_eval_model_to_provider) handles in-place config upgrade. Init wizard and --migrate-config updated. Bootstrap::build_eval_provider now uses create_named_provider (standard registry pattern). Extracts wizard_default_config_path() helper and adds xdg_fallback_matches_wizard_default test pinning path parity between init wizard and runtime resolve_config_path. BREAKING CHANGE: experiments.eval_model is removed. Update [experiments] sections to eval_provider = "<provider-name>"; run zeph --migrate-config to upgrade. Closes #4987, #4993 * fix(skills): use compact skill catalog when embedding matcher is unavailable (#4998) When the embedding matcher is None (no embedding provider configured) or fails due to infra error (embed timeout, Qdrant down), both fallback paths in assembly.rs previously injected all skill bodies into the system prompt, producing a ~57k-token baseline. Both paths now set skill_fallback_mode=true, which causes the prompt renderer to call format_skills_prompt_compact (description-only) instead of format_skills_prompt (full bodies). The working top-K matcher path is unchanged and still injects full skill bodies for the matched subset. Emits tracing::warn in both fallback cases pointing to embedding provider configuration. Closes #4989. * fix(tui): restore EnableAlternateScroll, remove mouse capture EnableMouseCapture and EnableAlternateScroll (1007h) are mutually exclusive: mouse capture disables native text selection. Revert to EnableAlternateScroll to preserve native terminal behaviour (#3685). Remove AppEvent::Mouse, handle_mouse, and related mouse-scroll code added in the previous commit. PageUp/PageDown keyboard scroll in Insert mode is retained as the fix for #4988.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ExperimentConfig.eval_model: Option<String>witheval_provider: ProviderName— aligns with the project's multi-model design principle where all LLM-calling subsystems reference[[llm.providers]]by namemigrate_eval_model_to_provider) for in-place config upgrade; init wizard and--migrate-configupdatedwizard_default_config_path()helper and addxdg_fallback_matches_wizard_defaulttest pinning path parity between init wizard and runtimeresolve_config_pathBreaking change
experiments.eval_modelis removed. Update[experiments]config sections:Run
zeph --migrate-configto upgrade automatically.Test plan
cargo nextest run --workspace --lib --bins)cargo +nightly fmt --checkcleancargo clippy --workspace -- -D warningscleanxdg_fallback_matches_wizard_defaulttest exists and passesmigrate_eval_model_to_provider_with_fieldand_no_optests cover migration bodyeval_modelreferences in workspaceCloses #4987, #4993