diff --git a/codersdk/toolsdk/bash.go b/codersdk/toolsdk/bash.go index 0df5f69aa71c9..e45ca6a49e29a 100644 --- a/codersdk/toolsdk/bash.go +++ b/codersdk/toolsdk/bash.go @@ -79,13 +79,12 @@ Examples: } // Wait for agent to be ready - err = cliui.Agent(ctx, nil, workspaceAgent.ID, cliui.AgentOptions{ + if err := cliui.Agent(ctx, io.Discard, workspaceAgent.ID, cliui.AgentOptions{ FetchInterval: 0, Fetch: deps.coderClient.WorkspaceAgent, FetchLogs: deps.coderClient.WorkspaceAgentLogsAfter, Wait: true, // Always wait for startup scripts - }) - if err != nil { + }); err != nil { return WorkspaceBashResult{}, xerrors.Errorf("agent not ready: %w", err) } diff --git a/codersdk/toolsdk/toolsdk.go b/codersdk/toolsdk/toolsdk.go index 6ef310f510369..670b5af145786 100644 --- a/codersdk/toolsdk/toolsdk.go +++ b/codersdk/toolsdk/toolsdk.go @@ -6,12 +6,14 @@ import ( "context" "encoding/json" "io" + "runtime/debug" "github.com/google/uuid" "golang.org/x/xerrors" "github.com/coder/aisdk-go" + "github.com/coder/coder/v2/buildinfo" "github.com/coder/coder/v2/codersdk" ) @@ -122,7 +124,14 @@ func WithRecover(h GenericHandlerFunc) GenericHandlerFunc { return func(ctx context.Context, deps Deps, args json.RawMessage) (ret json.RawMessage, err error) { defer func() { if r := recover(); r != nil { - err = xerrors.Errorf("tool handler panic: %v", r) + if buildinfo.IsDev() { + // Capture stack trace in dev builds + stack := debug.Stack() + err = xerrors.Errorf("tool handler panic: %v\nstack trace:\n%s", r, stack) + } else { + // Simple error message in production builds + err = xerrors.Errorf("tool handler panic: %v", r) + } } }() return h(ctx, deps, args) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy