From b990094010898d7c88be8f146f5050357003249c Mon Sep 17 00:00:00 2001 From: gastown/crew/joe Date: Mon, 12 Jan 2026 03:08:53 -0800 Subject: [PATCH] fix(done): create MR beads as ephemeral wisps MR beads were being created as regular beads, showing up in `bd ready` when they should be ephemeral wisps that get cleaned up after merge. Added Ephemeral field to CreateOptions and set it when creating MR beads. Co-Authored-By: Claude Opus 4.5 --- internal/beads/beads.go | 4 ++++ internal/cmd/done.go | 1 + 2 files changed, 5 insertions(+) diff --git a/internal/beads/beads.go b/internal/beads/beads.go index 9dbb396d..6553b84b 100644 --- a/internal/beads/beads.go +++ b/internal/beads/beads.go @@ -86,6 +86,7 @@ type CreateOptions struct { Description string Parent string Actor string // Who is creating this issue (populates created_by) + Ephemeral bool // Create as ephemeral (wisp) - not exported to JSONL } // UpdateOptions specifies options for updating an issue. @@ -391,6 +392,9 @@ func (b *Beads) Create(opts CreateOptions) (*Issue, error) { if opts.Parent != "" { args = append(args, "--parent="+opts.Parent) } + if opts.Ephemeral { + args = append(args, "--ephemeral") + } // Default Actor from BD_ACTOR env var if not specified actor := opts.Actor if actor == "" { diff --git a/internal/cmd/done.go b/internal/cmd/done.go index f934e50c..fa4af501 100644 --- a/internal/cmd/done.go +++ b/internal/cmd/done.go @@ -262,6 +262,7 @@ func runDone(cmd *cobra.Command, args []string) error { Type: "merge-request", Priority: priority, Description: description, + Ephemeral: true, }) if err != nil { return fmt.Errorf("creating merge request bead: %w", err)