Skip to content

Commit 922fa9f

Browse files
committed
fix for UI form submission
1 parent 00b9213 commit 922fa9f

File tree

4 files changed

+30
-16
lines changed

4 files changed

+30
-16
lines changed

pkg/github/issues.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1101,15 +1101,12 @@ Options are:
11011101
return utils.NewToolResultError(err.Error()), nil, nil
11021102
}
11031103

1104-
// When insiders mode is enabled and this is an initial request (no title provided),
1105-
// show UI - the host will detect the UI metadata and display the form.
1106-
// If title is provided, this is a submission from the UI form, so proceed with the operation.
1107-
title, err := OptionalParam[string](args, "title")
1108-
if err != nil {
1109-
return utils.NewToolResultError(err.Error()), nil, nil
1110-
}
1104+
// When insiders mode is enabled, check if this is a UI form submission.
1105+
// The UI sends _ui_submitted=true to distinguish form submissions from LLM calls.
1106+
// Without this flag, always show the UI so the user can review/edit before submitting.
1107+
uiSubmitted, _ := OptionalParam[bool](args, "_ui_submitted")
11111108

1112-
if deps.GetFlags(ctx).InsidersMode && title == "" {
1109+
if deps.GetFlags(ctx).InsidersMode && !uiSubmitted {
11131110
if method == "update" {
11141111
issueNumber, numErr := RequiredInt(args, "issue_number")
11151112
if numErr != nil {
@@ -1120,6 +1117,11 @@ Options are:
11201117
return utils.NewToolResultText(fmt.Sprintf("Ready to create an issue in %s/%s. The interactive form will be displayed.", owner, repo)), nil, nil
11211118
}
11221119

1120+
title, err := OptionalParam[string](args, "title")
1121+
if err != nil {
1122+
return utils.NewToolResultError(err.Error()), nil, nil
1123+
}
1124+
11231125
// Optional parameters
11241126
body, err := OptionalParam[string](args, "body")
11251127
if err != nil {

pkg/github/pullrequests.go

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -555,17 +555,27 @@ func CreatePullRequest(t translations.TranslationHelperFunc) inventory.ServerToo
555555
return utils.NewToolResultError(err.Error()), nil, nil
556556
}
557557

558-
// Check if required params for PR creation are provided
559-
title, _ := OptionalParam[string](args, "title")
560-
head, _ := OptionalParam[string](args, "head")
561-
base, _ := OptionalParam[string](args, "base")
558+
// When insiders mode is enabled, check if this is a UI form submission.
559+
// The UI sends _ui_submitted=true to distinguish form submissions from LLM calls.
560+
uiSubmitted, _ := OptionalParam[bool](args, "_ui_submitted")
562561

563-
// When insiders mode is enabled and required params are missing, show UI
564-
if deps.GetFlags(ctx).InsidersMode && (title == "" || head == "" || base == "") {
562+
if deps.GetFlags(ctx).InsidersMode && !uiSubmitted {
565563
return utils.NewToolResultText(fmt.Sprintf("Ready to create a pull request in %s/%s. The interactive form will be displayed.", owner, repo)), nil, nil
566564
}
567565

568566
// When creating PR, title/head/base are required
567+
title, err := OptionalParam[string](args, "title")
568+
if err != nil {
569+
return utils.NewToolResultError(err.Error()), nil, nil
570+
}
571+
head, err := OptionalParam[string](args, "head")
572+
if err != nil {
573+
return utils.NewToolResultError(err.Error()), nil, nil
574+
}
575+
base, err := OptionalParam[string](args, "base")
576+
if err != nil {
577+
return utils.NewToolResultError(err.Error()), nil, nil
578+
}
569579
if title == "" {
570580
return utils.NewToolResultError("missing required parameter: title"), nil, nil
571581
}

ui/src/apps/issue-write/App.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,8 @@ function CreateIssueApp() {
621621
owner,
622622
repo,
623623
title: title.trim(),
624-
body: body.trim()
624+
body: body.trim(),
625+
_ui_submitted: true
625626
};
626627

627628
if (isUpdateMode && issueNumber) {

ui/src/apps/pr-write/App.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,8 @@ function CreatePRApp() {
290290
head: headBranch,
291291
base: baseBranch,
292292
draft: isDraft,
293-
maintainer_can_modify: maintainerCanModify
293+
maintainer_can_modify: maintainerCanModify,
294+
_ui_submitted: true
294295
});
295296

296297
if (result.isError) {

0 commit comments

Comments
 (0)