mirror of
https://github.com/open-webui/computer.git
synced 2026-11-05 01:17:24 +00:00
[GH-ISSUE #198] bug: workspace display name silently reset to the path basename by routine autosaves #116
Labels
No labels
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-webui/computer#116
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @penradioGables on GitHub (Jul 28, 2026).
Original GitHub issue: https://github.com/open-webui/computer/issues/198
Summary
Renaming a workspace does not stick. The name reverts to the raw path basename (
cptrfor/home/cptr) shortly afterwards, at what looks to the user like a random moment — it is actually the next routine autosave.Verified still present in v0.9.15 —
cptr/routers/state.pyis byte-identical between thev0.9.10andv0.9.15tags.Root cause
routers/state.py::put_workspace(PUT /api/state/workspace, L169–180) defaultsnameto the path basename whenever the request body omits the key:Routine tab/layout/group autosaves from the frontend never include
"name"..pop(key, default)cannot distinguish "the caller omitted this" from "the caller set this", so every such autosave overwrites the stored name with the basename.Note the read path already does the right thing —
workspace.name or _workspace_display_name(path)(L98) — so the fallback exists in both places, and only the write path needs to stop applying it unconditionally.Why it matters beyond cosmetics
The model id exposed to OpenAI-compatible clients is derived from the workspace, so this churns the advertised model identity too. With two cptr instances attached to the same Open WebUI, both collapse to the same basename-derived id and collide. (Working around that at the OWUI end with a connection
prefix_idis what made the underlying reset visible to us in the first place.)Suggested fix
Only fall back to the basename when no row exists yet; when a row exists and the request omits
name, preserve the stored value.Happy to open a PR.
@tjbck commented on GitHub (Jul 31, 2026):
Should be addressed!