From ba03fcfe2d6c5b34b1222a90dc0899becb9f1c77 Mon Sep 17 00:00:00 2001 From: Hongming Wang Date: Thu, 23 Apr 2026 13:57:42 -0700 Subject: [PATCH 1/5] fix(restart): preserve user config volume on default restart (#1822 drift-risk-3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Repro On Canvas: create a workspace named "Hermes Agent" (runtime=langgraph, model=langgraph default). Open the Config tab, switch the model to a Minimax provider + Minimax token, hit Save and Restart. The model reverts to the default on every restart. ### Root cause `workspace_restart.go` called `findTemplateByName(configsDir, wsName)` unconditionally when the request body had no explicit `template`: template := body.Template if template == "" { template = findTemplateByName(h.configsDir, wsName) } `findTemplateByName` normalises the name ("Hermes Agent" → "hermes-agent") and ALSO scans every template's `config.yaml` for a matching `name:` field — a two-layer match that returns non-empty for any workspace whose name coincides with a template dir OR any template whose config.yaml claims the same display name. When the match returned non-empty, the restart handler set `templatePath =