Skip to content

Development orcestration#3774

Open
milanp93 wants to merge 4 commits intosuperplanehq:mainfrom
milanp93:feat/dev-orcestration
Open

Development orcestration#3774
milanp93 wants to merge 4 commits intosuperplanehq:mainfrom
milanp93:feat/dev-orcestration

Conversation

@milanp93
Copy link
Copy Markdown

Implemented:

  1. transitionIssue to change jira status,
  2. getIssue to get details about jira ticket,
  3. codeAgent the Claude integration with github that will automatically make chages and open PR,
  4. reviewAgent that will review PR,
  5. mergeAgent that will merge PR and we can continue from frem there

@superplanehq-integration
Copy link
Copy Markdown

👋 Commands for maintainers:

  • /sp start - Start an ephemeral machine (takes ~30s)
  • /sp stop - Stop a running machine (auto-executed on pr close)

Comment thread pkg/integrations/jira/get_issue.go Outdated
Comment thread pkg/integrations/claude/review_agent.go Outdated
eventToPost := decision
if decision == "APPROVE" {
eventToPost = "COMMENT"
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUEST_CHANGES review event not demoted like APPROVE

Medium Severity

The code demotes APPROVE to COMMENT to handle the GitHub self-review limitation, but doesn't apply the same demotion to REQUEST_CHANGES. GitHub doesn't allow submitting any formal review (including REQUEST_CHANGES) on your own PR. When Claude decides REQUEST_CHANGES, the SubmitPRReview call will fail with a GitHub API error, causing the agent to emit a failure instead of successfully posting the review feedback.

Fix in Cursor Fix in Web

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed that part to switch to comment now it works good and approves it, we need to give it different github token than one we used to make a code and this will work

Comment thread pkg/integrations/claude/code_agent.go
…tails about jira ticket, codeAgent the Claude integration with github that will automatically make chages and open PR, reviewAgent that will review PR, mergeAgent that will merge PR and we can continue from frem there

Signed-off-by: Milan Popovic <milan.popovic@3ss.tv>
@milanp93 milanp93 force-pushed the feat/dev-orcestration branch from 59ae890 to a44e965 Compare March 29, 2026 09:11
Comment thread pkg/integrations/claude/code_agent.go Outdated
Signed-off-by: Milan Popovic <milan.popovic@3ss.tv>
Comment thread pkg/integrations/claude/review_agent.go
Signed-off-by: Milan Popovic <milan.popovic@3ss.tv>
Comment thread pkg/integrations/claude/code_agent.go
return s
}
return s[:maxLen-3] + "..."
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Truncate splits multi-byte UTF-8 characters by bytes

Low Severity

The truncate function uses len(s) (byte length) and slices with s[:maxLen-3], which operates on bytes rather than runes. For task descriptions containing multi-byte UTF-8 characters (e.g., CJK text, emoji), this can split a rune in half, producing an invalid UTF-8 string in the PR title passed to the GitHub API.

Fix in Cursor Fix in Web

Signed-off-by: Milan Popovic <milan.popovic@3ss.tv>
Copy link
Copy Markdown
Contributor

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

There are 4 total unresolved issues (including 2 from previous reviews).

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Comment thread pkg/registry/http.go

httpCtx.client = &http.Client{
Timeout: 30 * time.Second,
Timeout: 120 * time.Second,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Global HTTP timeout quadrupled affecting all integrations

Medium Severity

The HTTP client timeout in NewHTTPContext was increased from 30s to 120s. This is a global change that affects every integration (Jira, Slack, Hetzner, Sentry, etc.), not just Claude API calls. While Claude code generation may need longer timeouts, other integrations that typically respond in seconds will now take up to 120s before timing out on failures, leading to slower error detection, potential goroutine/connection buildup, and degraded resilience across the entire system.

Fix in Cursor Fix in Web


func (r *ReviewAgent) Setup(ctx core.SetupContext) error {
spec := ReviewAgentSpec{}
decoder, _ := mapstructure.NewDecoder(&mapstructure.DecoderConfig{WeaklyTypedInput: true, Result: &spec})
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discarded NewDecoder error risks nil pointer panic

Low Severity

The error from mapstructure.NewDecoder is discarded with _ in four places across review_agent.go and merge_agent.go. If NewDecoder ever returns an error, decoder would be nil, and the subsequent decoder.Decode() call would panic. The existing codebase pattern in hetzner/client.go and sentry/update_issue.go properly checks this error.

Additional Locations (2)
Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant