diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0b40e44..4ae46b8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.8.3] - 2026-07-07
+
+### Fixed
+
+- 💬 **Cleaner chat suggestions.** Slash commands, file matches, skill matches, and model choices now have a little more room and clearer hover hints, so longer names are easier to understand.
+- 🧠**Better menu hints.** Menus can now show helpful hover hints only when there is something useful to show, keeping empty tooltips out of the way.
+
## [0.8.2] - 2026-07-07
### Added
diff --git a/LICENSE b/LICENSE
index 0c6b11b..bdc1bfd 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
Open Use License
-Copyright © 2026 Open WebUI Inc. All rights reserved.
+Copyright © 2026 Open WebUI, Inc. All rights reserved.
This software is licensed under the Open Use License, which incorporates the
Elastic License 2.0 ("ELv2") in full with the additional conditions set forth
@@ -30,3 +30,7 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+
+Commercial, organizational, or production use is subject to the applicable
+commercial terms published at https://openwebui.com/terms, unless Open WebUI,
+Inc. agrees otherwise in writing.
diff --git a/cptr/frontend/src/lib/components/DropdownMenu.svelte b/cptr/frontend/src/lib/components/DropdownMenu.svelte
index a7e4805..c0bebfe 100644
--- a/cptr/frontend/src/lib/components/DropdownMenu.svelte
+++ b/cptr/frontend/src/lib/components/DropdownMenu.svelte
@@ -1,10 +1,12 @@
{#if items.length === 0}
{$t('quickOpen.noFiles')}
@@ -54,6 +55,7 @@
onselect(i);
}}
onmouseenter={() => (selectedIndex = i)}
+ use:tooltip={{ content: item.id, placement: 'top' }}
>
diff --git a/cptr/frontend/src/lib/components/chat/SkillSuggestionPopup.svelte b/cptr/frontend/src/lib/components/chat/SkillSuggestionPopup.svelte
index 8dfac47..ff61dfb 100644
--- a/cptr/frontend/src/lib/components/chat/SkillSuggestionPopup.svelte
+++ b/cptr/frontend/src/lib/components/chat/SkillSuggestionPopup.svelte
@@ -1,6 +1,7 @@
{#if items.length === 0}
{$t('chat.noSkillsFound')}
@@ -47,7 +48,7 @@
onselect(i);
}}
onmouseenter={() => (selectedIndex = i)}
- title={item.description}
+ use:tooltip={{ content: item.label, placement: 'top' }}
>
diff --git a/cptr/frontend/src/lib/components/common/ModelSelector.svelte b/cptr/frontend/src/lib/components/common/ModelSelector.svelte
index 216ba05..e3361ae 100644
--- a/cptr/frontend/src/lib/components/common/ModelSelector.svelte
+++ b/cptr/frontend/src/lib/components/common/ModelSelector.svelte
@@ -28,6 +28,7 @@
const menuItems = $derived(
filtered.map((m) => ({
label: m.name,
+ tooltip: m.name,
active: m.id === selectedModel,
check: true,
onclick: () => {
@@ -100,7 +101,7 @@
{preferAbove}
forceAbove={preferAbove}
maxHeight={selectorMaxHeight}
- className="w-48"
+ className="w-52"
{align}
>
{#snippet header()}
diff --git a/cptr/frontend/src/lib/tooltip.ts b/cptr/frontend/src/lib/tooltip.ts
index 7bfd3fe..50eba8c 100644
--- a/cptr/frontend/src/lib/tooltip.ts
+++ b/cptr/frontend/src/lib/tooltip.ts
@@ -1,31 +1,49 @@
-import tippy, { type Props as TippyProps } from 'tippy.js';
+import tippy, { type Instance, type Props as TippyProps } from 'tippy.js';
import 'tippy.js/dist/tippy.css';
+type TooltipParams = string | Partial | null | undefined | false;
+
/**
* Svelte action for tippy.js tooltips.
* Usage: