Repository navigation
Conversation
3008538 to
cb03620
Compare
ld-ahartmann
left a comment
There was a problem hiding this comment.
gave this whole stack some ai review and discussion - no negative feedback from my end! seems like everything in here is pretty isolated from the rest of the cli
cb03620 to
b03c8e8
Compare
b03c8e8 to
78c89de
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 78c89de. Configure here.
| Key: options.Attachment.Key, | ||
| Interactive: runner.isTerminal(options.Input, options.ErrorOutput), | ||
| Input: options.Input, | ||
| Output: options.Output, |
There was a problem hiding this comment.
TTY check uses the wrong stream
Medium Severity
Interactive attach decides whether a terminal is available from stdin and stderr, then renders the project, variation, and attachment pickers on stdout. Redirecting stdout still looks interactive, so the picker runs on a non-TTY. The other sync selectors check the same stream they write to.
Reviewed by Cursor Bugbot for commit 78c89de. Configure here.


Context
This layer gives users a direct way to attach an existing LaunchDarkly tool or skill to a variation that is already synchronized in their workspace. The same flow works interactively and through explicit command flags, so it can also be used in non-interactive environments.
What changes
--attach-tooland--attach-skilltoldcli sync prompt.--projectand--variationwhen the caller already knows the target.For example:
Review focus
Verification
go test ./cmd/sync ./internal/sync/prompt ./internal/sync/localgo test ./...git diff --checkRelated changes
Review the stack in this order:
Note
Overview
Adds
--attach-tooland--attach-skilltoldcli sync prompt, with optional--projectand--variationfor non-interactive runs. Bare flags open interactive search against LaunchDarkly (not a full local catalog) and pick among already-synced variations.Attachment runs before the normal sync pipeline: it loads the latest tool or skill version, writes local attachment files, and updates the variation reference—reusing existing on-disk attachment content when another variation already uses the same key so shared edits are not overwritten. Failed variation updates roll back new attachment files; skills are rejected for completion-mode configs.
Attachment mode is isolated from
--add,--detach,--dry-run,--link, and--watch(watch clears one-shot attachment on subsequent runs).Reviewed by Cursor Bugbot for commit 78c89de. Bugbot is set up for automated code reviews on this repo. Configure here.