diff options
| author | adamdottv <[email protected]> | 2025-05-14 13:06:09 -0500 |
|---|---|---|
| committer | adamdottv <[email protected]> | 2025-05-14 13:06:09 -0500 |
| commit | 3982be4310aa57209fd4ce2be833c3515f759ba8 (patch) | |
| tree | 1bf577d7185afb153dd1f3e8fd7c4dbe36bb6448 /cmd | |
| parent | 4c998d4f4ff2d9570796a81a95eb84d34d0a6939 (diff) | |
| download | opencode-3982be4310aa57209fd4ce2be833c3515f759ba8.tar.gz opencode-3982be4310aa57209fd4ce2be833c3515f759ba8.zip | |
feat: session specific logs
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/root.go | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/cmd/root.go b/cmd/root.go index a5481b582..1e96e20c4 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -23,6 +23,26 @@ import ( "github.com/sst/opencode/internal/version" ) +type SessionIDHandler struct { + slog.Handler + app *app.App +} + +func (h *SessionIDHandler) Handle(ctx context.Context, r slog.Record) error { + if h.app != nil { + sessionID := h.app.CurrentSession.ID + if sessionID != "" { + r.AddAttrs(slog.String("session_id", sessionID)) + } + } + return h.Handler.Handle(ctx, r) +} + +func (h *SessionIDHandler) WithApp(app *app.App) *SessionIDHandler { + h.app = app + return h +} + var rootCmd = &cobra.Command{ Use: "OpenCode", Short: "A terminal AI assistant for software development", @@ -42,9 +62,9 @@ to assist developers in writing, debugging, and understanding code directly from // Setup logging lvl := new(slog.LevelVar) - logger := slog.New(slog.NewTextHandler(logging.NewSlogWriter(), &slog.HandlerOptions{ - Level: lvl, - })) + textHandler := slog.NewTextHandler(logging.NewSlogWriter(), &slog.HandlerOptions{Level: lvl}) + sessionAwareHandler := &SessionIDHandler{Handler: textHandler} + logger := slog.New(sessionAwareHandler) slog.SetDefault(logger) // Load the config @@ -89,6 +109,7 @@ to assist developers in writing, debugging, and understanding code directly from slog.Error("Failed to create app", "error", err) return err } + sessionAwareHandler.WithApp(app) // Set up the TUI zone.NewGlobal() |
