[PR #24419] [CLOSED] feat(shell): inject Swept workbench shell sidebar #131316

Closed
opened 2026-05-21 16:40:14 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/24419
Author: @l3aconator
Created: 5/6/2026
Status: ❌ Closed

Base: main ← Head: feat/workbench-shell


📝 Commits (10+)

  • a818db3 Enable 4GB Node heap for frontend build
  • 82e8b5a Add /approve PR bot workflow
  • 653eb9f Merge pull request #1 from swept-ai/fix/dockerfile-node-heap-size
  • 1af5ad9 Merge pull request #2 from swept-ai/chore/pr-approve-bot
  • ed9d688 Add CLAUDE.md to orient agents in this repo
  • c568e61 Merge branch 'open-webui:main' into main
  • 878fad1 Merge pull request #3 from swept-ai/docs/claude-md
  • 78a83e3 Fix frontend build CI heap and remove unused release workflows
  • cbbd2e5 Apply prettier formatting to CLAUDE.md
  • 0a7ddab Merge pull request #4 from swept-ai/ci/fix-frontend-build-and-prune-workflows

📊 Changes

60 files changed (+2022 additions, -1092 deletions)

View changed files

📝 .env.example (+22 -1)
➖ .github/workflows/build-release.yml (+0 -61)
➖ .github/workflows/docker-build.yaml (+0 -917)
📝 .github/workflows/format-build-frontend.yaml (+2 -0)
➕ .github/workflows/pr-approve-bot.yml (+76 -0)
➖ .github/workflows/release-pypi.yml (+0 -36)
📝 .gitignore (+6 -1)
➕ CLAUDE.md (+71 -0)
📝 Dockerfile (+1 -1)
📝 backend/open_webui/env.py (+2 -0)
📝 backend/open_webui/main.py (+2 -0)
📝 backend/open_webui/static/custom.css (+333 -0)
➕ backend/open_webui/static/fonts/8vIQ7wUr0m80wwYf0QCXZzYzUoTg8z6hR4jNCH5Z.woff2 (+0 -0)
➕ backend/open_webui/static/fonts/8vIQ7wUr0m80wwYf0QCXZzYzUoTg_T6hR4jNCA.woff2 (+0 -0)
➕ backend/open_webui/static/fonts/RrQXbohi_ic6B3yVSzGBrMxQZqctMc-JPWCN.woff2 (+0 -0)
➕ backend/open_webui/static/fonts/RrQXbohi_ic6B3yVSzGBrMxQaKctMc-JPQ.woff2 (+0 -0)
📝 backend/open_webui/static/loader.js (+220 -0)
📝 docker-compose.yaml (+17 -1)
➕ docs/integrations/vertex-ai.md (+220 -0)
➕ plugins/functions/README.md (+78 -0)

...and 40 more files

📄 Description

Summary

  • Adds a 256px Swept workbench-style left rail to open-webui that mounts when WORKBENCH_URL is set, links nav items out to ${WORKBENCH_URL}/<route>, and stays out of the way when unset (vanilla open-webui).
  • Implemented as static-asset overlay only — no Svelte source edits. Backend change is one field passthrough on /api/config.
  • Wires WORKBENCH_URL through docker-compose.yaml and fixes a related compose footgun where image: ghcr.io/... was making docker compose up pull upstream instead of building from ./Dockerfile, so local backend/static changes silently never landed.

Changes

  • backend/open_webui/env.py — read WORKBENCH_URL env var (default empty).
  • backend/open_webui/main.py — include workbench_url in the /api/config payload.
  • static/static/loader.js + backend/open_webui/static/loader.js — fetch /api/config; if workbench_url is set, preload Red Hat Text/Display, inject the shell DOM (Swept wordmark + nav + Settings), and add html.swept-shell-active. Inline Lucide v-current icon paths so icon sizing matches workbench.
  • static/static/custom.css + backend/open_webui/static/custom.css — .swept-shell rules (fixed-left, slate-200 border, dark variants), padding-left:16rem on body, and a [data-state] nudge so the existing chat sidebar's math is untouched.
  • docker-compose.yaml — rename image: to swept/open-webui:dev (local-only tag forces build) and add WORKBENCH_URL=${WORKBENCH_URL:-} to the service environment.

Why two copies of loader.js / custom.css

FastAPI's /static/* mount serves STATIC_DIR (backend/open_webui/static/); static/static/* ends up under FRONTEND_BUILD_DIR and isn't reachable on its own. Both copies must match.

Test plan

  • WORKBENCH_URL=http://localhost:3004 docker compose up -d --build open-webui
  • curl http://localhost:8080/api/config | jq .workbench_url → returns the URL
  • curl http://localhost:8080/static/loader.js | grep swept-shell → non-zero match count
  • Open http://localhost:8080 in a browser — Swept rail appears on the left at ≥lg breakpoint, with the existing chat sidebar shifted right
  • Click a nav item (Governance / Evaluations / etc.) — navigates to ${WORKBENCH_URL}/<route>
  • Unset WORKBENCH_URL, docker compose up -d again — rail does not mount, vanilla open-webui

🤖 Generated with Claude Code


🔄 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/24419 **Author:** [@l3aconator](https://github.com/l3aconator) **Created:** 5/6/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feat/workbench-shell` --- ### 📝 Commits (10+) - [`a818db3`](https://github.com/open-webui/open-webui/commit/a818db3deef5bc6fbb442d662d5c0b8c30c44c0c) Enable 4GB Node heap for frontend build - [`82e8b5a`](https://github.com/open-webui/open-webui/commit/82e8b5adf7a73deffbe1e497432164b988d34888) Add /approve PR bot workflow - [`653eb9f`](https://github.com/open-webui/open-webui/commit/653eb9fdde51429331dd7e5d7cb4d5eca3fa9c3c) Merge pull request #1 from swept-ai/fix/dockerfile-node-heap-size - [`1af5ad9`](https://github.com/open-webui/open-webui/commit/1af5ad9ab1d4f125e31666c4815a0719fc8c36c8) Merge pull request #2 from swept-ai/chore/pr-approve-bot - [`ed9d688`](https://github.com/open-webui/open-webui/commit/ed9d68834e1d657583f0bf028a38244b7b6ad992) Add CLAUDE.md to orient agents in this repo - [`c568e61`](https://github.com/open-webui/open-webui/commit/c568e6197e95bcb9006d320a60a94a2711e86c66) Merge branch 'open-webui:main' into main - [`878fad1`](https://github.com/open-webui/open-webui/commit/878fad132b5f9b94a0c3f52d6a595662cafde53e) Merge pull request #3 from swept-ai/docs/claude-md - [`78a83e3`](https://github.com/open-webui/open-webui/commit/78a83e3cf475e212275b6553685e150dad39dcdf) Fix frontend build CI heap and remove unused release workflows - [`cbbd2e5`](https://github.com/open-webui/open-webui/commit/cbbd2e57ca3b875471edda2dc8605297df377685) Apply prettier formatting to CLAUDE.md - [`0a7ddab`](https://github.com/open-webui/open-webui/commit/0a7ddabab795014e164cbd51221cb993878c12bf) Merge pull request #4 from swept-ai/ci/fix-frontend-build-and-prune-workflows ### 📊 Changes **60 files changed** (+2022 additions, -1092 deletions) <details> <summary>View changed files</summary> 📝 `.env.example` (+22 -1) ➖ `.github/workflows/build-release.yml` (+0 -61) ➖ `.github/workflows/docker-build.yaml` (+0 -917) 📝 `.github/workflows/format-build-frontend.yaml` (+2 -0) ➕ `.github/workflows/pr-approve-bot.yml` (+76 -0) ➖ `.github/workflows/release-pypi.yml` (+0 -36) 📝 `.gitignore` (+6 -1) ➕ `CLAUDE.md` (+71 -0) 📝 `Dockerfile` (+1 -1) 📝 `backend/open_webui/env.py` (+2 -0) 📝 `backend/open_webui/main.py` (+2 -0) 📝 `backend/open_webui/static/custom.css` (+333 -0) ➕ `backend/open_webui/static/fonts/8vIQ7wUr0m80wwYf0QCXZzYzUoTg8z6hR4jNCH5Z.woff2` (+0 -0) ➕ `backend/open_webui/static/fonts/8vIQ7wUr0m80wwYf0QCXZzYzUoTg_T6hR4jNCA.woff2` (+0 -0) ➕ `backend/open_webui/static/fonts/RrQXbohi_ic6B3yVSzGBrMxQZqctMc-JPWCN.woff2` (+0 -0) ➕ `backend/open_webui/static/fonts/RrQXbohi_ic6B3yVSzGBrMxQaKctMc-JPQ.woff2` (+0 -0) 📝 `backend/open_webui/static/loader.js` (+220 -0) 📝 `docker-compose.yaml` (+17 -1) ➕ `docs/integrations/vertex-ai.md` (+220 -0) ➕ `plugins/functions/README.md` (+78 -0) _...and 40 more files_ </details> ### 📄 Description ## Summary - Adds a 256px Swept workbench-style left rail to open-webui that mounts when `WORKBENCH_URL` is set, links nav items out to `${WORKBENCH_URL}/<route>`, and stays out of the way when unset (vanilla open-webui). - Implemented as static-asset overlay only — no Svelte source edits. Backend change is one field passthrough on `/api/config`. - Wires `WORKBENCH_URL` through `docker-compose.yaml` and fixes a related compose footgun where `image: ghcr.io/...` was making `docker compose up` pull upstream instead of building from `./Dockerfile`, so local backend/static changes silently never landed. ## Changes - `backend/open_webui/env.py` — read `WORKBENCH_URL` env var (default empty). - `backend/open_webui/main.py` — include `workbench_url` in the `/api/config` payload. - `static/static/loader.js` + `backend/open_webui/static/loader.js` — fetch `/api/config`; if `workbench_url` is set, preload Red Hat Text/Display, inject the shell DOM (Swept wordmark + nav + Settings), and add `html.swept-shell-active`. Inline Lucide v-current icon paths so icon sizing matches workbench. - `static/static/custom.css` + `backend/open_webui/static/custom.css` — `.swept-shell` rules (fixed-left, slate-200 border, dark variants), `padding-left:16rem` on body, and a `[data-state]` nudge so the existing chat sidebar's math is untouched. - `docker-compose.yaml` — rename `image:` to `swept/open-webui:dev` (local-only tag forces build) and add `WORKBENCH_URL=${WORKBENCH_URL:-}` to the service environment. ## Why two copies of `loader.js` / `custom.css` FastAPI's `/static/*` mount serves `STATIC_DIR` (`backend/open_webui/static/`); `static/static/*` ends up under `FRONTEND_BUILD_DIR` and isn't reachable on its own. Both copies must match. ## Test plan - [ ] `WORKBENCH_URL=http://localhost:3004 docker compose up -d --build open-webui` - [ ] `curl http://localhost:8080/api/config | jq .workbench_url` → returns the URL - [ ] `curl http://localhost:8080/static/loader.js | grep swept-shell` → non-zero match count - [ ] Open `http://localhost:8080` in a browser — Swept rail appears on the left at ≥`lg` breakpoint, with the existing chat sidebar shifted right - [ ] Click a nav item (Governance / Evaluations / etc.) — navigates to `${WORKBENCH_URL}/<route>` - [ ] Unset `WORKBENCH_URL`, `docker compose up -d` again — rail does not mount, vanilla open-webui 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <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-05-21 16:40:14 -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#131316