From 602e5afe93316ad21c280236ab0e2d3bcbf98150 Mon Sep 17 00:00:00 2001 From: Snider Date: Thu, 30 Apr 2026 19:08:59 +0100 Subject: [PATCH] refactor(go): use core.Log + propagate command/service Result (Mantis #1259) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drop `corelog "dappco.re/go/log"` import alias in mcp.go and use core/go's primitives directly: `*core.Log` for the logger field type and `core.Default()` for the default logger constructor. Also propagate Result failures inline instead of discarding: - register.go: Register service-iteration loop returns r on c.Service(name) failure instead of `continue`-ing past it - register.go: OnStartup's two c.Command("mcp") and c.Command("serve") calls now branch on Result with `if r := c.Command(...); !r.OK { return r }` 2 files changed, 11/-8. Build, vet, test all clean. 0 gaming patterns across all dims (var-_, fmt.Errorf, local-error-helpers, Result literals, cli-batch-helpers, i18n-standalone). Audit: 1997 → 1997 (no tracked dims affected, no regressions). Closes tasks.lthn.sh/view.php?id=1259 Co-authored-by: Codex --- go/pkg/mcp/mcp.go | 5 ++--- go/pkg/mcp/register.go | 14 +++++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/go/pkg/mcp/mcp.go b/go/pkg/mcp/mcp.go index 963485a..5f97b9f 100644 --- a/go/pkg/mcp/mcp.go +++ b/go/pkg/mcp/mcp.go @@ -13,7 +13,6 @@ import ( "sync" core "dappco.re/go" - corelog "dappco.re/go/log" "dappco.re/go/process" "dappco.re/go/ws" "github.com/modelcontextprotocol/go-sdk/mcp" @@ -32,7 +31,7 @@ type Service struct { workspaceRoot string // Root directory for file operations (empty = cwd unless Unrestricted) medium *coreMedium // Filesystem medium for sandboxed operations subsystems []Subsystem // Additional subsystems registered via Options.Subsystems - logger *corelog.Logger // Logger for tool execution auditing + logger *core.Log // Logger for tool execution auditing processService *process.Service // Process management service (optional) wsHub *ws.Hub // WebSocket hub for real-time streaming (optional) wsServer *http.Server // WebSocket HTTP server (optional) @@ -83,7 +82,7 @@ func New(opts Options) ( server: server, processService: opts.ProcessService, wsHub: opts.WSHub, - logger: corelog.Default(), + logger: core.Default(), processMeta: make(map[string]processRuntime), } diff --git a/go/pkg/mcp/register.go b/go/pkg/mcp/register.go index e4e975c..f4bc4c4 100644 --- a/go/pkg/mcp/register.go +++ b/go/pkg/mcp/register.go @@ -30,7 +30,7 @@ func Register(c *core.Core) core.Result { for _, name := range c.Services() { r := c.Service(name) if !r.OK { - continue + return r } if sub, ok := r.Value.(Subsystem); ok { subsystems = append(subsystems, sub) @@ -73,7 +73,7 @@ func (s *Service) OnStartup(ctx context.Context) core.Result { return core.Ok(nil) } - c.Command("mcp", core.Command{ + if r := c.Command("mcp", core.Command{ Description: "Start the MCP server on stdio", Action: func(opts core.Options) core.Result { s.logger.Info("MCP stdio server starting") @@ -82,9 +82,11 @@ func (s *Service) OnStartup(ctx context.Context) core.Result { } return core.Ok(nil) }, - }) + }); !r.OK { + return r + } - c.Command("serve", core.Command{ + if r := c.Command("serve", core.Command{ Description: "Start the MCP server with auto-selected transport", Action: func(opts core.Options) core.Result { s.logger.Info("MCP server starting") @@ -93,7 +95,9 @@ func (s *Service) OnStartup(ctx context.Context) core.Result { } return core.Ok(nil) }, - }) + }); !r.OK { + return r + } return core.Ok(nil) }