@@ -5,7 +5,13 @@ import * as diff from "diff"
55import stripBom from "strip-bom"
66import delay from "delay"
77
8- import { type ClineSayTool , DEFAULT_WRITE_DELAY_MS } from "@roo-code/types"
8+ import {
9+ type ClineSayTool ,
10+ DEFAULT_AUTO_CLOSE_ZOO_OPENED_FILES ,
11+ DEFAULT_AUTO_CLOSE_ZOO_OPENED_FILES_AFTER_USER_EDITED ,
12+ DEFAULT_AUTO_CLOSE_ZOO_OPENED_NEW_FILES ,
13+ DEFAULT_WRITE_DELAY_MS ,
14+ } from "@roo-code/types"
915
1016import { createDirectoriesForFile } from "../../utils/fs"
1117import { arePathsEqual , getReadablePath } from "../../utils/path"
@@ -352,9 +358,9 @@ export class DiffViewProvider {
352358 await this . keepOrCloseEditedFile (
353359 absolutePath ,
354360 this . userTouchedDiffEditor ,
355- saveState ?. autoCloseZooOpenedFiles ?? true ,
356- saveState ?. autoCloseZooOpenedFilesAfterUserEdited ?? false ,
357- saveState ?. autoCloseZooOpenedNewFiles ?? false ,
361+ saveState ?. autoCloseZooOpenedFiles ?? DEFAULT_AUTO_CLOSE_ZOO_OPENED_FILES ,
362+ saveState ?. autoCloseZooOpenedFilesAfterUserEdited ?? DEFAULT_AUTO_CLOSE_ZOO_OPENED_FILES_AFTER_USER_EDITED ,
363+ saveState ?. autoCloseZooOpenedNewFiles ?? DEFAULT_AUTO_CLOSE_ZOO_OPENED_NEW_FILES ,
358364 )
359365
360366 // Restore any preview tabs the diff evicted, reconstructing the user's
@@ -563,9 +569,10 @@ export class DiffViewProvider {
563569 await this . keepOrCloseEditedFile (
564570 absolutePath ,
565571 false ,
566- revertState ?. autoCloseZooOpenedFiles ?? true ,
567- revertState ?. autoCloseZooOpenedFilesAfterUserEdited ?? false ,
568- revertState ?. autoCloseZooOpenedNewFiles ?? false ,
572+ revertState ?. autoCloseZooOpenedFiles ?? DEFAULT_AUTO_CLOSE_ZOO_OPENED_FILES ,
573+ revertState ?. autoCloseZooOpenedFilesAfterUserEdited ??
574+ DEFAULT_AUTO_CLOSE_ZOO_OPENED_FILES_AFTER_USER_EDITED ,
575+ revertState ?. autoCloseZooOpenedNewFiles ?? DEFAULT_AUTO_CLOSE_ZOO_OPENED_NEW_FILES ,
569576 )
570577 }
571578
@@ -647,16 +654,20 @@ export class DiffViewProvider {
647654 // refinement of the base auto-close, so it has no effect when the base
648655 // setting is off.
649656 // 4. autoCloseZooOpenedFiles=false -> keep the transiently-opened tab.
650- // 5. Default -> close the transiently-opened tab (current behavior preserved).
657+ // 5. autoCloseZooOpenedFiles=true -> close the transiently-opened tab.
658+ //
659+ // The default value of autoCloseZooOpenedFiles is false (opt-in), so by default
660+ // branch 4 applies and the edited file stays open. See DEFAULT_AUTO_CLOSE_* in
661+ // @roo -code/types for the single source of truth for these defaults.
651662 //
652663 // keepIfTouchedDiff is passed as true from saveChanges() when the user clicked
653664 // or typed inside the diff editor itself.
654665 private async keepOrCloseEditedFile (
655666 absolutePath : string ,
656667 keepIfTouchedDiff = false ,
657- autoCloseZooOpenedFiles = true ,
658- autoCloseZooOpenedFilesAfterUserEdited = false ,
659- autoCloseZooOpenedNewFiles = false ,
668+ autoCloseZooOpenedFiles = DEFAULT_AUTO_CLOSE_ZOO_OPENED_FILES ,
669+ autoCloseZooOpenedFilesAfterUserEdited = DEFAULT_AUTO_CLOSE_ZOO_OPENED_FILES_AFTER_USER_EDITED ,
670+ autoCloseZooOpenedNewFiles = DEFAULT_AUTO_CLOSE_ZOO_OPENED_NEW_FILES ,
660671 ) : Promise < void > {
661672 // Files the user already had open are never auto-closed.
662673 if ( this . documentWasOpen ) {
@@ -682,7 +693,8 @@ export class DiffViewProvider {
682693 return
683694 }
684695
685- // Transient tab opened by Zoo: close by default, keep only when opted out.
696+ // Transient tab opened by Zoo: close only when auto-close is enabled (opt-in);
697+ // keep and re-show it otherwise (the default).
686698 if ( autoCloseZooOpenedFiles ) {
687699 await this . closeFileTab ( absolutePath )
688700 } else {
0 commit comments