From 67b8544b222392d8a01847e3d34559c23fd0cd12 Mon Sep 17 00:00:00 2001 From: Claudomator Agent Date: Mon, 9 Mar 2026 04:59:39 +0000 Subject: api: make workspace root configurable instead of hardcoded /workspace - Add workspaceRoot field (default "/workspace") to Server struct - Add SetWorkspaceRoot method on Server - Update handleListWorkspaces to use s.workspaceRoot - Add WorkspaceRoot field to Config with default "/workspace" - Wire cfg.WorkspaceRoot into server in serve.go - Expose --workspace-root flag on the serve command - Add TestListWorkspaces_UsesConfiguredRoot integration test Co-Authored-By: Claude Sonnet 4.6 --- internal/cli/serve.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'internal/cli') diff --git a/internal/cli/serve.go b/internal/cli/serve.go index 4253d56..e5bd873 100644 --- a/internal/cli/serve.go +++ b/internal/cli/serve.go @@ -20,16 +20,21 @@ import ( func newServeCmd() *cobra.Command { var addr string + var workspaceRoot string cmd := &cobra.Command{ Use: "serve", Short: "Start the Claudomator API server", RunE: func(cmd *cobra.Command, args []string) error { + if cmd.Flags().Changed("workspace-root") { + cfg.WorkspaceRoot = workspaceRoot + } return serve(addr) }, } cmd.Flags().StringVar(&addr, "addr", ":8484", "listen address") + cmd.Flags().StringVar(&workspaceRoot, "workspace-root", "/workspace", "root directory for listing workspaces") return cmd } @@ -77,6 +82,9 @@ func serve(addr string) error { if cfg.WebhookURL != "" { srv.SetNotifier(notify.NewWebhookNotifier(cfg.WebhookURL, logger)) } + if cfg.WorkspaceRoot != "" { + srv.SetWorkspaceRoot(cfg.WorkspaceRoot) + } // Register scripts. wd, _ := os.Getwd() -- cgit v1.2.3