From 8ad425f5f8bb3b00a4d15138e8e8f8c49fff386b Mon Sep 17 00:00:00 2001 From: viettranx Date: Sat, 14 Mar 2026 14:21:59 +0700 Subject: [PATCH] fix: use resolved workspace dir for StorageHandler in Docker deployments StorageHandler was hardcoded to browse ~/.goclaw/, which is empty in Docker where volumes mount to separate paths (GOCLAW_WORKSPACE). Use the already-resolved workspace variable so the Storage page correctly shows workspace files regardless of deployment layout. --- cmd/gateway.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cmd/gateway.go b/cmd/gateway.go index b62bca88..c9268db8 100644 --- a/cmd/gateway.go +++ b/cmd/gateway.go @@ -753,8 +753,10 @@ func runGateway() { // Supports media from any agent workspace (each agent has its own workspace from DB). server.SetFilesHandler(httpapi.NewFilesHandler(cfg.Gateway.Token)) - // Storage file management — browse/delete files under ~/.goclaw/ (excluding skills dirs). - server.SetStorageHandler(httpapi.NewStorageHandler(config.ExpandHome("~/.goclaw"), cfg.Gateway.Token)) + // Storage file management — browse/delete files under the resolved workspace directory. + // Uses GOCLAW_WORKSPACE (or default ~/.goclaw/workspace) so it works correctly + // in Docker deployments where volumes are mounted outside ~/.goclaw/. + server.SetStorageHandler(httpapi.NewStorageHandler(workspace, cfg.Gateway.Token)) // Media upload endpoint — accepts multipart file uploads, returns temp path + MIME type. server.SetMediaUploadHandler(httpapi.NewMediaUploadHandler(cfg.Gateway.Token))