summaryrefslogtreecommitdiffhomepage
path: root/cmd
diff options
context:
space:
mode:
authoradamdottv <[email protected]>2025-05-14 13:06:09 -0500
committeradamdottv <[email protected]>2025-05-14 13:06:09 -0500
commit3982be4310aa57209fd4ce2be833c3515f759ba8 (patch)
tree1bf577d7185afb153dd1f3e8fd7c4dbe36bb6448 /cmd
parent4c998d4f4ff2d9570796a81a95eb84d34d0a6939 (diff)
downloadopencode-3982be4310aa57209fd4ce2be833c3515f759ba8.tar.gz
opencode-3982be4310aa57209fd4ce2be833c3515f759ba8.zip
feat: session specific logs
Diffstat (limited to 'cmd')
-rw-r--r--cmd/root.go27
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()