Updates the stale version mentions in the chat config comment, the subpath
deploy README and Caddyfile, and records the v0.12.4.5 publish in UPGRADE.md.
- Embedded chat pins Open WebUI v0.12.4.3-subpath (fork fix for title links and Back buttons).
- Studio's chat mask targets the current Open WebUI markup (main, not main#main-content),
so the admin tab bar is hidden again.
- Open WebUI pin: v0.12.0.3-subpath -> v0.12.4.1-subpath (compose default and
embedded wheel). v0.12.4.1 is upstream v0.12.4 plus the fork's subpath build fix,
so the /chat frontend base is baked in and the playground iframe loads.
- ENABLE_VERSION_UPDATE_CHECK defaults to false (Studio pins the build, so the
update banner is noise). Override via env var.
- Docs and comments updated to match.
28 days ago
feat(otel): enable Open WebUI content capture runtime
Seed: seed_platform now creates a demo agent (Support Refund Assistant)
linked to an 'Acme Retail Policy' knowledge base (2 sample policy docs)
and an 'Acme Order Lookup' tool. Local rows always; when chat is enabled,
the KB, docs, and toolkit are also pushed to Open WebUI (idempotent by
name/id, external_id backfilled on rerun). Opt out with --skip-demo-agent.
Also fixes the tools endpoints: the Tools page is /api/v1/tools (toolkit
modules), not /api/v1/functions (pipes/filters) - corrected the seed
push and both pull-side readers.
Chat: repair the subpath fork's root-relative /workspace/knowledge hard
navigation (308 back onto the subpath at the front door) and pass
?embed=admin to /chat/authz via X-Studio-Embed since the Caddy rewrite
drops the query.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
mask directory-upload rows in the admin workspace embed via Caddy
The pure-Python proxy already masked 'Upload directory'/'Sync directory'
by injecting embed_admin.js into marked documents, but Caddy mode (local
dev + docker) does no document rewriting, so the buttons stayed visible
in /agents/knowledge/ and /agents/tools/.
Restore the mask in both modes with one file and no fork rebuild: Studio
now serves embed_admin.js as the subpath build's otherwise-empty
static/loader.js (the SPA's first <script>; SvelteKit hydration comes
from the separate entry/start bundle, so replacing it is safe). A Caddy
handle rewrites /chat/static/loader.js to a new /chat/loader-mask view,
mirroring the existing custom.css -> css-mask route.
The script self-gates on the PAGE URL carrying ?embed=admin: the admin
workspace iframes (which always load with that param) get masked; plain
/chat/ and the top-level /chat/workspace pages keep their full menu, so
folder bulk-upload still has one canonical place. This also re-applies
the title pin and Access List / branding masks …
feat(chat): unify Studio + Open WebUI behind one Caddy front door at /chat/
Replaces the two-port embedded model (Studio :8000 + OWUI :8801 in an
iframe) with a single-origin, single-port wiring, identical for local dev
and Docker:
- Caddy is the ONLY published listener (:8000). Studio and Open WebUI
publish no ports; /chat/* reverse-proxies to the subpath build with the
prefix preserved (handle, not handle_path); /ai/ and everything else
go to Django.
- Uses the subpath-capable Open WebUI fork wheel (v0.11.4-subpath,
WEBUI_SUBPATH=/chat), so OWUI emits every URL prefixed with /chat and
no Caddy-side URL rewriting is needed.
- Forward-auth to /chat/authz injects trusted identity headers
(X-Studio-Email/Name/Role); client-forged values are stripped at site
level; 401 redirects to the Studio login.
- Studio's /chat/css-mask serves the embed stylesheet (admin vs plain
mask) in place of a mounted custom.css.
- Local dev: manage.py dev manages a bundled Caddy (uvx caddy /
caddyserver) with a generated Caddyfile; Docker: caddy:2-alpine
chat-prox…
Add deploy/openwebui-subpath: embedded OWUI under /chat (v0.11.4, published)