on main help sign in
fix: update MultiEdit permission desc to reflect actual applied edits (#1564)
commita0e1bf138ca9e8430e37cd405df5a166c24b2b6f authorGustave-241021 <2909789120@qq.com> dateMon 8 Dec 2025, 22:38 (1 year ago) parentbbd0887
1 file changed+17−4
internal/agent/tools/multiedit.go+17−4
internal/agent/tools/multiedit.go+17−4
@@ -165,13 +165,20 @@ func processMultiEditWithCreation(edit editContext, params MultiEditParams, call
165165 // Check permissions
166166 _, additions, removals := diff.GenerateDiff("", currentContent, strings.TrimPrefix(params.FilePath, edit.workingDir))
167167
168+ editsApplied := len(params.Edits) - len(failedEdits)
169+ var description string
170+ if len(failedEdits) > 0 {
171+ description = fmt.Sprintf("Create file %s with %d of %d edits (%d failed)", params.FilePath, editsApplied, len(params.Edits), len(failedEdits))
172+ } else {
173+ description = fmt.Sprintf("Create file %s with %d edits", params.FilePath, editsApplied)
174+ }
168175 p := edit.permissions.Request(permission.CreatePermissionRequest{
169176 SessionID: sessionID,
170177 Path: fsext.PathOrPrefix(params.FilePath, edit.workingDir),
171178 ToolCallID: call.ID,
172179 ToolName: MultiEditToolName,
173180 Action: "write",
174− Description: fmt.Sprintf("Create file %s with %d edits", params.FilePath, len(params.Edits)),
181+ Description: description,
175182 Params: MultiEditPermissionsParams{
176183 FilePath: params.FilePath,
177184 OldContent: "",
@@ -202,7 +209,6 @@ func processMultiEditWithCreation(edit editContext, params MultiEditParams, call
202209 recordFileWrite(params.FilePath)
203210 recordFileRead(params.FilePath)
204211
205− editsApplied := len(params.Edits) - len(failedEdits)
206212 var message string
207213 if len(failedEdits) > 0 {
208214 message = fmt.Sprintf("File created with %d of %d edits: %s (%d edit(s) failed)", editsApplied, len(params.Edits), params.FilePath, len(failedEdits))
@@ -299,13 +305,21 @@ func processMultiEditExistingFile(edit editContext, params MultiEditParams, call
299305
300306 // Generate diff and check permissions
301307 _, additions, removals := diff.GenerateDiff(oldContent, currentContent, strings.TrimPrefix(params.FilePath, edit.workingDir))
308+
309+ editsApplied := len(params.Edits) - len(failedEdits)
310+ var description string
311+ if len(failedEdits) > 0 {
312+ description = fmt.Sprintf("Apply %d of %d edits to file %s (%d failed)", editsApplied, len(params.Edits), params.FilePath, len(failedEdits))
313+ } else {
314+ description = fmt.Sprintf("Apply %d edits to file %s", editsApplied, params.FilePath)
315+ }
302316 p := edit.permissions.Request(permission.CreatePermissionRequest{
303317 SessionID: sessionID,
304318 Path: fsext.PathOrPrefix(params.FilePath, edit.workingDir),
305319 ToolCallID: call.ID,
306320 ToolName: MultiEditToolName,
307321 Action: "write",
308− Description: fmt.Sprintf("Apply %d edits to file %s", len(params.Edits), params.FilePath),
322+ Description: description,
309323 Params: MultiEditPermissionsParams{
310324 FilePath: params.FilePath,
311325 OldContent: oldContent,
@@ -351,7 +365,6 @@ func processMultiEditExistingFile(edit editContext, params MultiEditParams, call
351365 recordFileWrite(params.FilePath)
352366 recordFileRead(params.FilePath)
353367
354− editsApplied := len(params.Edits) - len(failedEdits)
355368 var message string
356369 if len(failedEdits) > 0 {
357370 message = fmt.Sprintf("Applied %d of %d edits to file: %s (%d edit(s) failed)", editsApplied, len(params.Edits), params.FilePath, len(failedEdits))