Skip to content

fix: fix model list refresh failed#1297

Merged
zerob13 merged 1 commit intodevfrom
fix-model-list
Feb 4, 2026
Merged

fix: fix model list refresh failed#1297
zerob13 merged 1 commit intodevfrom
fix-model-list

Conversation

@zhangmo8
Copy link
Collaborator

@zhangmo8 zhangmo8 commented Feb 4, 2026

Summary by CodeRabbit

  • Bug Fixes
    • Improved initialization and validation of provider-specific settings for enhanced stability
    • Enhanced error handling during model operations and configuration changes
    • Refined confirmation flows for model management actions

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 4, 2026

📝 Walkthrough

Walkthrough

Refactored ModelProviderSettingsDetail.vue initialization flow by replacing throttled/deep-watcher patterns with a provider-id-based watcher, introducing syncModels and initProviderSettings orchestration functions, and reworking Gemini safety settings initialization with improved error handling. Minor optimization added to modelStore's refreshCustomModels.

Changes

Cohort / File(s) Summary
Model Provider Settings Refactoring
src/renderer/settings/components/ModelProviderSettingsDetail.vue
Replaced throttled initialization with provider.id watcher triggering initProviderSettings; introduced syncModels function; reworked Gemini safety fetch loop with per-category error handling; updated OAuth and config handlers to re-run initialization; adjusted model enable/disable logic with confirm flag support.
Model Store Optimization
src/renderer/src/stores/modelStore.ts
Added early return in refreshCustomModels when no new or existing custom models exist for the provider, bypassing unnecessary processing.

Sequence Diagram

sequenceDiagram
    participant Vue as ModelProviderSettingsDetail
    participant Watcher as Provider ID Watcher
    participant ProviderSettings as initProviderSettings
    participant Azure as Azure API
    participant Gemini as Gemini API
    participant Stores as ModelStore & ProviderStore
    
    Vue->>Watcher: Provider ID changes
    Watcher->>ProviderSettings: Trigger initialization
    
    alt Provider is Azure
        ProviderSettings->>Azure: Fetch API versions
        Azure-->>ProviderSettings: Return versions
    end
    
    alt Provider is Gemini
        ProviderSettings->>Gemini: Fetch safety levels
        Gemini-->>ProviderSettings: Return safety settings
        ProviderSettings->>ProviderSettings: Populate geminiSafetyLevels
    end
    
    ProviderSettings->>Stores: syncModels()
    Stores-->>ProviderSettings: Return populated models
    ProviderSettings->>Vue: Update UI state
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

codex

Suggested reviewers

  • zerob13

Poem

🐰 Hops through the model streams,
No throttle slows this flow—
Watchers guide the dreams,
From Azure depths below,
Gemini safely glows!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix: fix model list refresh failed' describes the main objective of the changeset - addressing model list refresh issues through refactoring of initialization, synchronization, and update flows in the settings component and model store.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-model-list

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@zerob13 zerob13 merged commit 7a90f8f into dev Feb 4, 2026
2 checks passed
@zhangmo8 zhangmo8 deleted the fix-model-list branch February 5, 2026 02:38
zerob13 added a commit that referenced this pull request Feb 5, 2026
* chore: typecheck with tsgo (#1278)

* feat: image left align

* feat: app settings skills (#1283)

* docs: add spec for app-settings

* feat: implement chat-driven settings control with skill gating

Add a safe, validated API for modifying DeepChat application settings via natural language. Settings changes are controlled by a dedicated 'deepchat-settings' skill to ensure tools are only available when contextually relevant.

Key features:
- Skill-gated tool injection: settings tools only appear when deepchat-settings skill is active
- Safe settings apply API with Zod validation and strict allowlist
- Support for toggles (sound, copy COT, chat mode) and enums (language, theme, font size)
- Defense-in-depth: runtime skill verification before applying changes
- Deep-linked settings navigation for unsupported/complex settings
- Comprehensive test coverage for validation, mapping, and skill gating

Changes:
- Add ChatSettingsToolHandler with validated apply/open methods
- Integrate with AgentToolManager for tool definition gating
- Create deepchat-settings built-in skill with clear activation rules
- Add shared types for requests/responses (chatSettings.ts)
- Implement settings window navigation with SECTION_ALIASES
- Add unit tests for handler and integration tests for tool gating
- Translate spec documents (plan.md, spec.md, tasks.md) to Chinese
- Fix type errors in getCurrentValue and OPEN_SECTION_VALUES

* refactor: remove chatMode from settings control and add permission service

Remove chatMode setting from the allowlist as it requires conversation-scoped updates that are better handled separately. Add permission checking for settings window opening to provide user control over settings navigation.

Key changes:
- Remove setChatMode tool and related schemas from ChatSettingsToolHandler
- Add SettingsPermissionService for managing tool approvals (one-time and session)
- Add permission check for deepchat_settings_open tool
- Update PermissionHandler to handle settings permission grants
- Add rememberable flag to permission request structure
- Update AgentToolManager to consume approvals before opening settings
- Add settingsPermissionService to main presenter index
- Clear settings approvals when conversation ends
- Update spec documents to reflect removed chatMode feature
- Remove chatMode-related tests and types

This ensures settings window opening requires explicit user approval and provides a cleaner separation of concerns for chat mode management.

* docs: translate to en

* chore: yo browser less context (#1284)

* docs: add specs for yo browesr context manager

* feat(yo-browser): improve skill description and add yo_browser_cdp_send to offload whitelist

* refactor(yobrowser): remove skill gating and make CDP tools always available in agent mode

* refactor(yobrowser): add CDP method schema validation with strict enums

- Add enum-based validation for cdp_send method (11 common CDP methods)
- Add detailed union schemas for each method's parameters with examples
- Add normalizeCdpParams method to handle both object and JSON string inputs
- Prevent method typos and provide better type safety for CDP interactions

* fix(yobrowser): add strict tab ID validation in CDP send handler

* chore: update deps

* refactor: agent provider simplification (#1286)

* docs: add spec for agent provider

* refactor(agent): remove BaseAgentProvider layer and simplify provider hierarchy

* feat(mcp): implement real Apple Maps search using URL scheme (#1289)

* feat: support voice.ai (#1291)

* feat: remove custome tiptap (#1295)

* feat: settings auto scroll toggle (#1293)

* feat: settings auto scroll toggle

* feat: i18n support

* fix(renderer): remove specific event listeners instead of all

* feat: add tooltip for filling default API URL in settings (#1296)

* fix: fix model list refresh failed (#1297)

* feat: add question tools  (#1298)

* feat(agent): add question tool flow

* feat(mcp): implement real Apple Maps search using URL scheme (#1289)

* feat: support voice.ai (#1291)

* feat: remove custome tiptap (#1295)

* feat: settings auto scroll toggle (#1293)

* feat: settings auto scroll toggle

* feat: i18n support

* fix(renderer): remove specific event listeners instead of all

* feat: add tooltip for filling default API URL in settings (#1296)

* refactor(question): simplify question request UI to single-choice interface

* fix(chat): restore pending question state

* fix: review issues

---------

Co-authored-by: Qi Jin <jin.qi1@northeastern.edu>
Co-authored-by: xiaomo <wegi866@gmail.com>

* chore: integrated vue-tsgo (#1299)

* chore: integrated vue-tsgo

* chore: update recommendation exteion

* chore: update

* feat: add prompt for ask tool

* chore: version to 0.5.7

---------

Co-authored-by: xiaomo <wegi866@gmail.com>
Co-authored-by: wanna <wanna.w@binarywalk.com>
Co-authored-by: Qi Jin <jin.qi1@northeastern.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants