mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-19 00:01:19 +00:00
* feat(read_file): enhance file reading capabilities with multi-file support and improved parameter handling fix(read_file): change return to continue on approval rejection in readFileTool Enhance readFileTool with improved error handling and validation - Introduced a FileEntry interface for better type management. - Added validation for start_line and end_line to ensure proper ranges. - Implemented RooIgnore validation before processing files. - Enhanced error handling with dedicated functions for file and global errors. - Streamlined file reading logic to handle binary files, definitions-only mode, and line thresholds more effectively. - Improved user feedback for empty files and read limits. chore: update Jest snapshot for system prompt tool usage Refactor read-file tool to support XML input format and multiple line ranges - Updated the `getReadFileDescription` function to reflect new XML structure for file reading requests. - Modified `readFileTool` to parse XML input, allowing multiple line ranges for each file. - Removed old parsing logic that handled line ranges as separate parameters. - Implemented validation for line ranges and ensured proper error handling for file access. - Adjusted approval messaging to accommodate new line range format. - Enhanced error handling to provide consistent feedback for file read errors. update from KJ7LNW comment feat: add maxConcurrentFileReads setting to enhance read_file tool performance feat: enhance readFileTool with XML parsing and file processing state tracking feat: enhance readFileTool to include user feedback handling and processing state tracking chore: clean up read_file tool documentation by removing extra newlines feat: update read_file tool tests to handle user feedback and approval states feat: add tests for feedback message formatting and XML special character handling in read_file tool Implement code changes to enhance functionality and improve performance feat: increase max concurrent file reads and adjust slider range in settings feat: increase default max concurrent file reads from 5 to 15 across settings and context management fix(read_file): enhance legacy path handling and remove duplicate parameters feat(read_file): enhance file description handling and add support for multiple files in messages done poc for new ux idea 1 * fix the test * fix: normalize locale file formatting to use tabs - Applied prettier formatting to all locale JSON files - Fixed mixed indentation (spaces/tabs) to use consistent tabs - Aligns with project's prettier configuration * fix(settings): improve checkbox handling and slider configuration in ConcurrentFileReadsExperiment * fix(read_file): enhance description to include partial reads support * fix(read_file): update description for partial reads and improve example clarity * fix: suggestions * fix: translations * test: update system prompt snapshots for multi-file read tool * fix: remove batch permission question from readFile tool translations --------- Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
54 lines
1.7 KiB
TypeScript
54 lines
1.7 KiB
TypeScript
import { memo } from "react"
|
|
|
|
import { ToolUseBlock, ToolUseBlockHeader } from "../common/ToolUseBlock"
|
|
import { vscode } from "@src/utils/vscode"
|
|
import { removeLeadingNonAlphanumeric } from "@src/utils/removeLeadingNonAlphanumeric"
|
|
|
|
interface FilePermissionItem {
|
|
path: string
|
|
lineSnippet?: string
|
|
isOutsideWorkspace?: boolean
|
|
key: string
|
|
content?: string // full path
|
|
}
|
|
|
|
interface BatchFilePermissionProps {
|
|
files: FilePermissionItem[]
|
|
onPermissionResponse?: (response: { [key: string]: boolean }) => void
|
|
ts: number
|
|
}
|
|
|
|
export const BatchFilePermission = memo(({ files = [], onPermissionResponse, ts }: BatchFilePermissionProps) => {
|
|
// Don't render if there are no files or no response handler
|
|
if (!files?.length || !onPermissionResponse) {
|
|
return null
|
|
}
|
|
|
|
return (
|
|
<div className="pt-[5px]">
|
|
{/* Individual files */}
|
|
<div className="flex flex-col gap-0 border border-border rounded-md p-1">
|
|
{files.map((file) => {
|
|
return (
|
|
<div key={`${file.path}-${ts}`} className="flex items-center gap-2">
|
|
<ToolUseBlock className="flex-1">
|
|
<ToolUseBlockHeader
|
|
onClick={() => vscode.postMessage({ type: "openFile", text: file.content })}>
|
|
{file.path?.startsWith(".") && <span>.</span>}
|
|
<span className="whitespace-nowrap overflow-hidden text-ellipsis text-left mr-2 rtl">
|
|
{removeLeadingNonAlphanumeric(file.path ?? "") + "\u200E"}
|
|
{file.lineSnippet && ` ${file.lineSnippet}`}
|
|
</span>
|
|
<div className="flex-grow"></div>
|
|
<span className="codicon codicon-link-external text-[13.5px] my-[1px]" />
|
|
</ToolUseBlockHeader>
|
|
</ToolUseBlock>
|
|
</div>
|
|
)
|
|
})}
|
|
</div>
|
|
</div>
|
|
)
|
|
})
|
|
|
|
BatchFilePermission.displayName = "BatchFilePermission"
|