From 5b35203253bb77a87d7efd89a4cfdaeca1b0bafe Mon Sep 17 00:00:00 2001
From: Hiep Le <69354317+hieptl@users.noreply.github.com>
Date: Fri, 29 Aug 2025 03:24:48 +0700
Subject: [PATCH] refactor: remove branch dropdown, update title, fix pr_number
issue (microagent management) (#10691)
---
.../microagent-management-content.tsx | 1 -
...microagent-management-repo-microagents.tsx | 2 +-
...ent-management-upsert-microagent-modal.tsx | 114 +-----------------
...ate-conversation-and-subscribe-multiple.ts | 2 +-
frontend/src/i18n/declaration.ts | 2 +-
frontend/src/i18n/translation.json | 32 ++---
frontend/src/types/microagent-management.tsx | 1 -
openhands/server/routes/mcp.py | 4 +-
8 files changed, 25 insertions(+), 133 deletions(-)
diff --git a/frontend/src/components/features/microagent-management/microagent-management-content.tsx b/frontend/src/components/features/microagent-management/microagent-management-content.tsx
index 7be9a9df05..315e7b9e67 100644
--- a/frontend/src/components/features/microagent-management/microagent-management-content.tsx
+++ b/frontend/src/components/features/microagent-management/microagent-management-content.tsx
@@ -240,7 +240,6 @@ export function MicroagentManagementContent() {
conversationInstructions,
repository: {
name: repositoryName,
- branch: formData.selectedBranch,
gitProvider,
},
createMicroagent,
diff --git a/frontend/src/components/features/microagent-management/microagent-management-repo-microagents.tsx b/frontend/src/components/features/microagent-management/microagent-management-repo-microagents.tsx
index 939eb288fe..7466314512 100644
--- a/frontend/src/components/features/microagent-management/microagent-management-repo-microagents.tsx
+++ b/frontend/src/components/features/microagent-management/microagent-management-repo-microagents.tsx
@@ -137,7 +137,7 @@ export function MicroagentManagementRepoMicroagents({
{hasConversations && (
- {t(I18nKey.MICROAGENT_MANAGEMENT$OPEN_MICROAGENT_PULL_REQUESTS)}
+ {t(I18nKey.COMMON$IN_PROGRESS)}
{conversations?.map((conversation) => (
diff --git a/frontend/src/components/features/microagent-management/microagent-management-upsert-microagent-modal.tsx b/frontend/src/components/features/microagent-management/microagent-management-upsert-microagent-modal.tsx
index 0f9f9494cc..0351b387db 100644
--- a/frontend/src/components/features/microagent-management/microagent-management-upsert-microagent-modal.tsx
+++ b/frontend/src/components/features/microagent-management/microagent-management-upsert-microagent-modal.tsx
@@ -1,4 +1,4 @@
-import { useEffect, useRef, useState, useMemo } from "react";
+import { useEffect, useState, useMemo } from "react";
import { useTranslation } from "react-i18next";
import { useSelector } from "react-redux";
import { FaCircleInfo } from "react-icons/fa6";
@@ -11,14 +11,8 @@ import XIcon from "#/icons/x.svg?react";
import { cn, extractRepositoryInfo } from "#/utils/utils";
import { BadgeInput } from "#/components/shared/inputs/badge-input";
import { MicroagentFormData } from "#/types/microagent-management";
-import { Branch, GitRepository } from "#/types/git";
-import { useRepositoryBranches } from "#/hooks/query/use-repository-branches";
+import { GitRepository } from "#/types/git";
import { useRepositoryMicroagentContent } from "#/hooks/query/use-repository-microagent-content";
-import {
- BranchDropdown,
- BranchLoadingState,
- BranchErrorState,
-} from "../home/repository-selection";
interface MicroagentManagementUpsertMicroagentModalProps {
onConfirm: (formData: MicroagentFormData) => void;
@@ -37,7 +31,6 @@ export function MicroagentManagementUpsertMicroagentModal({
const [triggers, setTriggers] = useState([]);
const [query, setQuery] = useState("");
- const [selectedBranch, setSelectedBranch] = useState(null);
const { selectedRepository } = useSelector(
(state: RootState) => state.microagentManagement,
@@ -49,9 +42,6 @@ export function MicroagentManagementUpsertMicroagentModal({
const { microagent } = selectedMicroagentItem ?? {};
- // Add a ref to track if the branch was manually cleared by the user
- const branchManuallyClearedRef = useRef(false);
-
// Extract owner and repo from full_name for content API
const { owner, repo, filePath } = extractRepositoryInfo(
selectedRepository,
@@ -70,38 +60,6 @@ export function MicroagentManagementUpsertMicroagentModal({
}
}, [isUpdate, microagentContentData]);
- const {
- data: branches,
- isLoading: isLoadingBranches,
- isError: isBranchesError,
- } = useRepositoryBranches(selectedRepository?.full_name || null);
-
- const branchesItems = branches?.map((branch) => ({
- key: branch.name,
- label: branch.name,
- }));
-
- // Auto-select main or master branch if it exists.
- useEffect(() => {
- if (
- branches &&
- branches.length > 0 &&
- !selectedBranch &&
- !isLoadingBranches
- ) {
- // Look for main or master branch
- const mainBranch = branches.find((branch) => branch.name === "main");
- const masterBranch = branches.find((branch) => branch.name === "master");
-
- // Select main if it exists, otherwise select master if it exists
- if (mainBranch) {
- setSelectedBranch(mainBranch);
- } else if (masterBranch) {
- setSelectedBranch(masterBranch);
- }
- }
- }, [branches, isLoadingBranches, selectedBranch]);
-
const modalTitle = useMemo(() => {
if (isUpdate) {
return t(I18nKey.MICROAGENT_MANAGEMENT$UPDATE_MICROAGENT);
@@ -134,7 +92,6 @@ export function MicroagentManagementUpsertMicroagentModal({
onConfirm({
query: query.trim(),
triggers,
- selectedBranch: selectedBranch?.name || "",
microagentPath: microagent?.path || "",
});
};
@@ -147,67 +104,10 @@ export function MicroagentManagementUpsertMicroagentModal({
onConfirm({
query: query.trim(),
triggers,
- selectedBranch: selectedBranch?.name || "",
microagentPath: microagent?.path || "",
});
};
- const handleBranchSelection = (key: React.Key | null) => {
- const selectedBranchObj = branches?.find((branch) => branch.name === key);
- setSelectedBranch(selectedBranchObj || null);
- // Reset the manually cleared flag when a branch is explicitly selected
- branchManuallyClearedRef.current = false;
- };
-
- const handleBranchInputChange = (value: string) => {
- // Clear the selected branch if the input is empty or contains only whitespace
- // This fixes the issue where users can't delete the entire default branch name
- if (value === "" || value.trim() === "") {
- setSelectedBranch(null);
- // Set the flag to indicate that the branch was manually cleared
- branchManuallyClearedRef.current = true;
- } else {
- // Reset the flag when the user starts typing again
- branchManuallyClearedRef.current = false;
- }
- };
-
- // Render the appropriate UI for branch selector based on the loading/error state
- const renderBranchSelector = () => {
- if (!selectedRepository) {
- return (
- {}}
- onInputChange={() => {}}
- isDisabled
- wrapperClassName="max-w-full w-full"
- label={t(I18nKey.REPOSITORY$SELECT_BRANCH)}
- />
- );
- }
-
- if (isLoadingBranches) {
- return ;
- }
-
- if (isBranchesError) {
- return ;
- }
-
- return (
-
- );
- };
-
return (
@@ -236,7 +136,6 @@ export function MicroagentManagementUpsertMicroagentModal({
onSubmit={onSubmit}
className="flex flex-col gap-6 w-full"
>
- {renderBranchSelector()}