[PR #20810] [CLOSED] fix: Hide Valves gear icon for tools/functions with empty Valves #48840

Closed
opened 2026-04-30 00:59:27 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/20810
Author: @silentoplayz
Created: 1/20/2026
Status: Closed

Base: devHead: fix/hide-empty-valves-gear-icon


📝 Commits (1)

  • 80730df fix: Hide Valves gear icon for tools/functions with empty Valves

📊 Changes

4 files changed (+177 additions, -58 deletions)

View changed files

📝 backend/open_webui/models/functions.py (+57 -0)
📝 backend/open_webui/routers/tools.py (+58 -0)
📝 src/lib/components/admin/Functions.svelte (+31 -29)
📝 src/lib/components/workspace/Tools.svelte (+31 -29)

📄 Description

Pull Request Checklist

Note to first-time contributors: Please open a discussion post in Discussions to discuss your idea/fix with the community before creating a pull request, and describe your changes before submitting a pull request.

This is to ensure large feature PRs are discussed with the community first, before starting work on it. If the community does not want this feature or it is not relevant for Open WebUI as a project, it can be identified in the discussion before working on the feature and submitting the PR.

Before submitting, make sure you've checked the following:

  • Target branch: Verify that the pull request targets the dev branch. Not targeting the dev branch will lead to immediate closure of the PR.
  • Description: Provide a concise description of the changes made in this pull request down below.
  • Changelog: Ensure a changelog entry following the format of Keep a Changelog is added at the bottom of the PR description.
  • Documentation: If necessary, update relevant documentation Open WebUI Docs like environment variables, the tutorials, or other documentation sources.
  • Dependencies: Are there any new dependencies? Have you updated the dependency versions in the documentation?
  • Testing: Perform manual tests to verify the implemented fix/feature works as intended AND does not break any other functionality. Take this as an opportunity to make screenshots of the feature/fix and include it in the PR description.
  • Agentic AI Code: Confirm this Pull Request is not written by any AI Agent or has at least gone through additional human review AND manual testing. If any AI Agent is the co-author of this PR, it may lead to immediate closure of the PR.
  • Code review: Have you performed a self-review of your code, addressing any coding standard issues and ensuring adherence to the project's coding standards?
  • Title Prefix: To clearly categorize this pull request, prefix the pull request title using one of the following:
    • BREAKING CHANGE: Significant changes that may affect compatibility
    • build: Changes that affect the build system or external dependencies
    • ci: Changes to our continuous integration processes or workflows
    • chore: Refactor, cleanup, or other non-functional code changes
    • docs: Documentation update or addition
    • feat: Introduces a new feature or enhancement to the codebase
    • fix: Bug fix or error correction
    • i18n: Internationalization or localization changes
    • perf: Performance improvement
    • refactor: Code restructuring for better maintainability, readability, or scalability
    • style: Changes that do not affect the meaning of the code (white space, formatting, missing semi-colons, etc.)
    • test: Adding missing tests or correcting existing tests
    • WIP: Work in progress, a temporary label for incomplete or ongoing work

Changelog Entry

Description

  • Hide the Valves gear icon in the Tools workspace and Functions admin panel for tools/functions that have no configurable Valves. The gear icon is only shown when a Valves class contains actual field definitions (e.g., api_key: str, timeout: int = Field(default=30)). Empty Valves classes (with just pass or docstrings) no longer display the gear icon, reducing user confusion.

Added

  • Added has_valves field to ToolAccessResponse and FunctionUserResponse models to indicate whether a tool/function has configurable valves
  • Added _has_configurable_valves() helper function in both tools.py router and functions.py model to detect Valves classes with actual field definitions

Changed

  • Modified Tools.svelte to conditionally show the Valves gear icon only when tool.has_valves is true
  • Modified Functions.svelte to conditionally show the Valves gear icon only when func.has_valves is true

Additional Information

This fix affects the visibility of the Valves gear icon in two locations:

  1. Tools workspace (/workspace/tools) - Tools page
  2. Admin panel (/admin/functions) - Functions settings page

UserValves in the Chat Controls sidebar is unaffected in this PR

Files modified:

  • backend/open_webui/routers/tools.py - Added has_valves field and detection logic
  • backend/open_webui/models/functions.py - Added has_valves field and detection logic
  • src/lib/components/workspace/Tools.svelte - Conditional gear icon rendering
  • src/lib/components/admin/Functions.svelte - Conditional gear icon rendering

Screenshots or Videos

image image image

Testing Performed

Extensive manual testing was conducted to verify the fix works correctly across various scenarios:

  1. Tools with no Valves class - Gear icon correctly hidden
  2. Tools with empty Valves (class Valves(BaseModel): pass) - Gear icon correctly hidden
  3. Tools with Valves containing only docstrings - Gear icon correctly hidden
  4. Tools with multi-line docstrings in Valves - Gear icon correctly hidden
  5. Tools with configurable Valves fields (api_key: str, timeout: int = Field(...)) - Gear icon correctly shown
  6. Tools with async methods after empty Valves - Correctly detected as non-valve content, gear icon hidden
  7. Same tests applied to Functions in the admin panel - All scenarios work correctly
  8. UserValves only (empty Valves) - Gear icon correctly hidden (Valves gear is for tool-level config, UserValves is configured in Chat sidebar)

No regression testing confirmed that:

  • Tools/Functions with actual configurable valves still show the gear icon
  • All other UI elements remain functional
  • No JavaScript or Python errors introduced
  • Status: All tests passed. The fix is working as intended.

Contributor License Agreement

By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.

Note

Deleting the CLA section will lead to immediate closure of your PR and it will not be merged in.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/open-webui/open-webui/pull/20810 **Author:** [@silentoplayz](https://github.com/silentoplayz) **Created:** 1/20/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `fix/hide-empty-valves-gear-icon` --- ### 📝 Commits (1) - [`80730df`](https://github.com/open-webui/open-webui/commit/80730df073b784f0bb17a3f70ceea23cf185b5b3) fix: Hide Valves gear icon for tools/functions with empty Valves ### 📊 Changes **4 files changed** (+177 additions, -58 deletions) <details> <summary>View changed files</summary> 📝 `backend/open_webui/models/functions.py` (+57 -0) 📝 `backend/open_webui/routers/tools.py` (+58 -0) 📝 `src/lib/components/admin/Functions.svelte` (+31 -29) 📝 `src/lib/components/workspace/Tools.svelte` (+31 -29) </details> ### 📄 Description # Pull Request Checklist ### Note to first-time contributors: Please open a discussion post in [Discussions](https://github.com/open-webui/open-webui/discussions) to discuss your idea/fix with the community before creating a pull request, and describe your changes before submitting a pull request. This is to ensure large feature PRs are discussed with the community first, before starting work on it. If the community does not want this feature or it is not relevant for Open WebUI as a project, it can be identified in the discussion before working on the feature and submitting the PR. **Before submitting, make sure you've checked the following:** - [x] **Target branch:** Verify that the pull request targets the `dev` branch. **Not targeting the `dev` branch will lead to immediate closure of the PR.** - [x] **Description:** Provide a concise description of the changes made in this pull request down below. - [x] **Changelog:** Ensure a changelog entry following the format of [Keep a Changelog](https://keepachangelog.com/) is added at the bottom of the PR description. - [x] **Documentation:** If necessary, update relevant documentation [Open WebUI Docs](https://github.com/open-webui/docs) like environment variables, the tutorials, or other documentation sources. - [x] **Dependencies:** Are there any new dependencies? Have you updated the dependency versions in the documentation? - [x] **Testing:** Perform manual tests to **verify the implemented fix/feature works as intended AND does not break any other functionality**. Take this as an opportunity to **make screenshots of the feature/fix and include it in the PR description**. - [x] **Agentic AI Code:** Confirm this Pull Request is **not written by any AI Agent** or has at least **gone through additional human review AND manual testing**. If any AI Agent is the co-author of this PR, it may lead to immediate closure of the PR. - [x] **Code review:** Have you performed a self-review of your code, addressing any coding standard issues and ensuring adherence to the project's coding standards? - [x] **Title Prefix:** To clearly categorize this pull request, prefix the pull request title using one of the following: - **BREAKING CHANGE**: Significant changes that may affect compatibility - **build**: Changes that affect the build system or external dependencies - **ci**: Changes to our continuous integration processes or workflows - **chore**: Refactor, cleanup, or other non-functional code changes - **docs**: Documentation update or addition - **feat**: Introduces a new feature or enhancement to the codebase - **fix**: Bug fix or error correction - **i18n**: Internationalization or localization changes - **perf**: Performance improvement - **refactor**: Code restructuring for better maintainability, readability, or scalability - **style**: Changes that do not affect the meaning of the code (white space, formatting, missing semi-colons, etc.) - **test**: Adding missing tests or correcting existing tests - **WIP**: Work in progress, a temporary label for incomplete or ongoing work # Changelog Entry ### Description - Hide the Valves gear icon in the Tools workspace and Functions admin panel for tools/functions that have no configurable Valves. The gear icon is only shown when a Valves class contains actual field definitions (e.g., `api_key: str`, `timeout: int = Field(default=30)`). Empty Valves classes (with just `pass` or docstrings) no longer display the gear icon, reducing user confusion. ### Added - Added `has_valves` field to `ToolAccessResponse` and `FunctionUserResponse` models to indicate whether a tool/function has configurable valves - Added `_has_configurable_valves()` helper function in both `tools.py` router and `functions.py` model to detect Valves classes with actual field definitions ### Changed - Modified `Tools.svelte` to conditionally show the Valves gear icon only when `tool.has_valves` is `true` - Modified `Functions.svelte` to conditionally show the Valves gear icon only when `func.has_valves` is `true` --- ### Additional Information #### This fix affects the visibility of the Valves gear icon in two locations: 1. Tools workspace (`/workspace/tools`) - Tools page 2. Admin panel (`/admin/functions`) - Functions settings page #### UserValves in the Chat Controls sidebar is unaffected in this PR **Files modified:** - `backend/open_webui/routers/tools.py` - Added `has_valves `field and detection logic - `backend/open_webui/models/functions.py` - Added `has_valves` field and detection logic - `src/lib/components/workspace/Tools.svelte` - Conditional gear icon rendering - `src/lib/components/admin/Functions.svelte` - Conditional gear icon rendering ### Screenshots or Videos <img width="2312" height="1201" alt="image" src="https://github.com/user-attachments/assets/0d8cddfc-946c-4f5e-b0d4-aafb8b7e4f39" /> <img width="2312" height="922" alt="image" src="https://github.com/user-attachments/assets/cb603ab4-519f-4d6a-91d8-c4a411862bca" /> <img width="2312" height="438" alt="image" src="https://github.com/user-attachments/assets/d7d970cc-983e-415c-b6a4-61befb15f8f3" /> ### Testing Performed #### Extensive manual testing was conducted to verify the fix works correctly across various scenarios: 1. Tools with no Valves class - Gear icon correctly hidden 2. Tools with empty Valves (class Valves(BaseModel): pass) - Gear icon correctly hidden 4. Tools with Valves containing only docstrings - Gear icon correctly hidden 5. Tools with multi-line docstrings in Valves - Gear icon correctly hidden 6. Tools with configurable Valves fields (api_key: str, timeout: int = Field(...)) - Gear icon correctly shown 7. Tools with async methods after empty Valves - Correctly detected as non-valve content, gear icon hidden 8. Same tests applied to Functions in the admin panel - All scenarios work correctly 9. UserValves only (empty Valves) - Gear icon correctly hidden (Valves gear is for tool-level config, UserValves is configured in Chat sidebar) #### No regression testing confirmed that: - Tools/Functions with actual configurable valves still show the gear icon - All other UI elements remain functional - No JavaScript or Python errors introduced - Status: All tests passed. The fix is working as intended. ### Contributor License Agreement By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](https://github.com/open-webui/open-webui/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms. > [!NOTE] > Deleting the CLA section will lead to immediate closure of your PR and it will not be merged in. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-30 00:59:27 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#48840