[PR #23369] [CLOSED] fix(ui): keep chat controls state tab-scoped #50217

Closed
opened 2026-04-30 02:50:39 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/23369
Author: @haimingZZ
Created: 4/3/2026
Status: Closed

Base: devHead: fix/tab-scoped-controls-state-haimingzz


📝 Commits (10+)

📊 Changes

2 files changed (+19 additions, -7 deletions)

View changed files

📝 src/lib/components/chat/Controls/Controls.svelte (+6 -3)
📝 src/routes/(app)/+layout.svelte (+13 -4)

📄 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.

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

  • Target branch: Verify that the pull request targets the dev branch. PRs targeting main will be immediately closed.
  • 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: Add docs in Open WebUI Docs Repository. Document user-facing behavior, environment variables, public APIs/interfaces, or deployment steps.
  • Dependencies: No new or upgraded dependencies were added.
  • Testing: I manually validated that the controls state stays isolated per tab while still persisting across reloads in the same tab.
  • Agentic AI Code: The changes received additional human review and manual testing before submission.
  • Code review: I performed a self-review of the final diff.
  • Design & Architecture: This keeps the change local to ephemeral UI state and avoids introducing any new settings.
  • Git Hygiene: The PR is atomic and limited to the tab-scoped state fix.
  • Title Prefix: The title uses the fix prefix.

Changelog Entry

Description

  • Fix chat control visibility and collapse state so it remains scoped to the current browser tab instead of leaking through shared localStorage.

Added

  • None.

Changed

  • Switched the top-level controls visibility persistence in +layout.svelte from localStorage to sessionStorage.
  • Switched the collapsible state persistence inside Controls.svelte to sessionStorage as well.

Deprecated

  • None.

Removed

  • None.

Fixed

  • Prevented one tab from reopening artifact or advanced control sections in another tab.
  • Preserved the expected behavior where a reload in the same tab keeps the current controls state.

Security

  • None.

Breaking Changes

  • BREAKING CHANGE: None.

Additional Information

  • Closes #23232.
  • Manual verification:
    • Open two tabs in Open WebUI.
    • Expand or collapse controls in one tab.
    • Confirm the other tab keeps its own independent state.
    • Reload the original tab and confirm its state persists within that tab.
  • git diff --check passed locally.
  • Frontend formatter and svelte-check could not be run reliably in the current checkout because the required Svelte toolchain was not fully installed.

Screenshots or Videos

  • Not attached in this update.

Contributor License Agreement

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/23369 **Author:** [@haimingZZ](https://github.com/haimingZZ) **Created:** 4/3/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `fix/tab-scoped-controls-state-haimingzz` --- ### 📝 Commits (10+) - [`fe6783c`](https://github.com/open-webui/open-webui/commit/fe6783c16699911c7be17392596d579333fb110c) Merge pull request #19030 from open-webui/dev - [`fc05e0a`](https://github.com/open-webui/open-webui/commit/fc05e0a6c5d39da60b603b4d520f800d6e36f748) Merge pull request #19405 from open-webui/dev - [`e3faec6`](https://github.com/open-webui/open-webui/commit/e3faec62c58e3a83d89aa3df539feacefa125e0c) Merge pull request #19416 from open-webui/dev - [`9899293`](https://github.com/open-webui/open-webui/commit/9899293f050ad50ae12024cbebee7e018acd851e) Merge pull request #19448 from open-webui/dev - [`140605e`](https://github.com/open-webui/open-webui/commit/140605e660b8186a7d5c79fb3be6ffb147a2f498) Merge pull request #19462 from open-webui/dev - [`6f1486f`](https://github.com/open-webui/open-webui/commit/6f1486ffd0cb288d0e21f41845361924e0d742b3) Merge pull request #19466 from open-webui/dev - [`d95f533`](https://github.com/open-webui/open-webui/commit/d95f533214e3fe5beb5e41ec1f349940bc4c7043) Merge pull request #19729 from open-webui/dev - [`a727153`](https://github.com/open-webui/open-webui/commit/a7271532f8a38da46785afcaa7e65f9a45e7d753) 0.6.43 (#20093) - [`6adde20`](https://github.com/open-webui/open-webui/commit/6adde203cd292a9e3af9c64a2ae36b603fed096a) Merge pull request #20394 from open-webui/dev - [`f9b0534`](https://github.com/open-webui/open-webui/commit/f9b0534e0c442631d1cb7205169588b9b6204179) Merge pull request #20522 from open-webui/dev ### 📊 Changes **2 files changed** (+19 additions, -7 deletions) <details> <summary>View changed files</summary> 📝 `src/lib/components/chat/Controls/Controls.svelte` (+6 -3) 📝 `src/routes/(app)/+layout.svelte` (+13 -4) </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. **Before submitting, make sure you've checked the following:** - [x] **Target branch:** Verify that the pull request targets the `dev` branch. **PRs targeting `main` will be immediately closed.** - [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. - [ ] **Documentation:** Add docs in [Open WebUI Docs Repository](https://github.com/open-webui/docs). Document user-facing behavior, environment variables, public APIs/interfaces, or deployment steps. - [x] **Dependencies:** No new or upgraded dependencies were added. - [x] **Testing:** I manually validated that the controls state stays isolated per tab while still persisting across reloads in the same tab. - [x] **Agentic AI Code:** The changes received additional human review and manual testing before submission. - [x] **Code review:** I performed a self-review of the final diff. - [x] **Design & Architecture:** This keeps the change local to ephemeral UI state and avoids introducing any new settings. - [x] **Git Hygiene:** The PR is atomic and limited to the tab-scoped state fix. - [x] **Title Prefix:** The title uses the `fix` prefix. # Changelog Entry ### Description - Fix chat control visibility and collapse state so it remains scoped to the current browser tab instead of leaking through shared `localStorage`. ### Added - None. ### Changed - Switched the top-level controls visibility persistence in `+layout.svelte` from `localStorage` to `sessionStorage`. - Switched the collapsible state persistence inside `Controls.svelte` to `sessionStorage` as well. ### Deprecated - None. ### Removed - None. ### Fixed - Prevented one tab from reopening artifact or advanced control sections in another tab. - Preserved the expected behavior where a reload in the same tab keeps the current controls state. ### Security - None. ### Breaking Changes - **BREAKING CHANGE**: None. --- ### Additional Information - Closes #23232. - Manual verification: - Open two tabs in Open WebUI. - Expand or collapse controls in one tab. - Confirm the other tab keeps its own independent state. - Reload the original tab and confirm its state persists within that tab. - `git diff --check` passed locally. - Frontend formatter and `svelte-check` could not be run reliably in the current checkout because the required Svelte toolchain was not fully installed. ### Screenshots or Videos - Not attached in this update. ### Contributor License Agreement <!-- 🚨 DO NOT DELETE THE TEXT BELOW 🚨 Keep the "Contributor License Agreement" confirmation text intact. Deleting it will trigger the CLA-Bot to INVALIDATE your PR. Your PR will NOT be reviewed or merged until you check the box below confirming that you have read and agree to the terms of the CLA. --> - [x] 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 02:50:39 -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#50217