diff --git a/docs/AGENTS.md b/docs/AGENTS.md index aff8e8e22..a2b084c1d 100644 --- a/docs/AGENTS.md +++ b/docs/AGENTS.md @@ -24,7 +24,7 @@ This ensures transparency about AI-generated contributions. ## PR Management -**Prefer to reuse existing PRs** by force-pushing to the same branch, even if the branch name becomes irrelevant. Avoid closing and recreating PRs unnecessarily - PR spam clutters the repository history. +**Prefer to reuse existing PRs** by force-pushing to the same branch, even if the branch name becomes irrelevant. Avoid closing and recreating PRs unnecessarily - PR spam clutters the repository history. **Never close PRs without explicit user instruction.** Always force-push to the existing branch instead of creating new PRs. After submitting or updating PRs, **always check merge status**: diff --git a/src/components/RightSidebar/CodeReview/ReviewPanel.tsx b/src/components/RightSidebar/CodeReview/ReviewPanel.tsx index 78203cd30..2b1357130 100644 --- a/src/components/RightSidebar/CodeReview/ReviewPanel.tsx +++ b/src/components/RightSidebar/CodeReview/ReviewPanel.tsx @@ -555,68 +555,85 @@ export const ReviewPanel: React.FC = ({ Loading diff... ) : ( -
-
- {truncationWarning && ( -
- {truncationWarning} -
- )} +
+ {truncationWarning && ( +
+ {truncationWarning} +
+ )} + + {/* Search bar - always visible at top, not sticky */} +
+
+ setSearchState({ ...searchState, input: e.target.value })} + className="text-foreground placeholder:text-dim focus:bg-separator flex h-full flex-1 items-center border-none bg-transparent px-2.5 py-1.5 font-sans text-xs leading-[1.4] outline-none" + /> + + + + {searchState.useRegex ? "Using regex search" : "Using substring search"} + + + + + + {searchState.matchCase + ? "Match case (case-sensitive)" + : "Ignore case (case-insensitive)"} + + +
+
-
-
- setSearchState({ ...searchState, input: e.target.value })} - className="text-foreground placeholder:text-dim focus:bg-separator flex h-full flex-1 items-center border-none bg-transparent px-2.5 py-1.5 font-sans text-xs leading-[1.4] outline-none" + {/* Single scrollable area containing both file tree and hunks */} +
+ {/* FileTree at the top */} + {(fileTree ?? isLoadingTree) && ( +
+ - - - - {searchState.useRegex ? "Using regex search" : "Using substring search"} - - - - - - {searchState.matchCase - ? "Match case (case-sensitive)" - : "Ignore case (case-insensitive)"} - -
-
+ )} -
+ {/* Hunks below the file tree */} +
{hunks.length === 0 ? (
No changes found
@@ -691,20 +708,6 @@ export const ReviewPanel: React.FC = ({ )}
- - {/* FileTree positioning handled by CSS order property */} - {(fileTree ?? isLoadingTree) && ( -
- -
- )}
)}