Просмотр исходного кода

feat: add OPENCODE_DISABLE_FILETIME_CHECK flag (#6581)

Signed-off-by: luojiyin <[email protected]>
Co-authored-by: Aiden Cline <[email protected]>
luo jiyin 1 месяц назад
Родитель
Сommit
c9ea966805
2 измененных файлов с 7 добавлено и 1 удалено
  1. 6 1
      packages/opencode/src/file/time.ts
  2. 1 0
      packages/opencode/src/flag/flag.ts

+ 6 - 1
packages/opencode/src/file/time.ts

@@ -1,5 +1,6 @@
 import { Instance } from "../project/instance"
 import { Instance } from "../project/instance"
 import { Log } from "../util/log"
 import { Log } from "../util/log"
+import { Flag } from "../flag/flag"
 
 
 export namespace FileTime {
 export namespace FileTime {
   const log = Log.create({ service: "file.time" })
   const log = Log.create({ service: "file.time" })
@@ -52,8 +53,12 @@ export namespace FileTime {
   }
   }
 
 
   export async function assert(sessionID: string, filepath: string) {
   export async function assert(sessionID: string, filepath: string) {
+    if (Flag.OPENCODE_DISABLE_FILETIME_CHECK === true) {
+      return
+    }
+
     const time = get(sessionID, filepath)
     const time = get(sessionID, filepath)
-    if (!time) throw new Error(`You must read the file ${filepath} before overwriting it. Use the Read tool first`)
+    if (!time) throw new Error(`You must read file ${filepath} before overwriting it. Use the Read tool first`)
     const stats = await Bun.file(filepath).stat()
     const stats = await Bun.file(filepath).stat()
     if (stats.mtime.getTime() > time.getTime()) {
     if (stats.mtime.getTime() > time.getTime()) {
       throw new Error(
       throw new Error(

+ 1 - 0
packages/opencode/src/flag/flag.ts

@@ -38,6 +38,7 @@ export namespace Flag {
   export const OPENCODE_EXPERIMENTAL_OXFMT = OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_OXFMT")
   export const OPENCODE_EXPERIMENTAL_OXFMT = OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_OXFMT")
   export const OPENCODE_EXPERIMENTAL_LSP_TY = truthy("OPENCODE_EXPERIMENTAL_LSP_TY")
   export const OPENCODE_EXPERIMENTAL_LSP_TY = truthy("OPENCODE_EXPERIMENTAL_LSP_TY")
   export const OPENCODE_EXPERIMENTAL_LSP_TOOL = OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_LSP_TOOL")
   export const OPENCODE_EXPERIMENTAL_LSP_TOOL = OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_LSP_TOOL")
+  export const OPENCODE_DISABLE_FILETIME_CHECK = truthy("OPENCODE_DISABLE_FILETIME_CHECK")
   export const OPENCODE_EXPERIMENTAL_PLAN_MODE = OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_PLAN_MODE")
   export const OPENCODE_EXPERIMENTAL_PLAN_MODE = OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_PLAN_MODE")
 
 
   function truthy(key: string) {
   function truthy(key: string) {