From f9aceab91c816231a8a455a0532aa114acabc9d9 Mon Sep 17 00:00:00 2001 From: Chris Fleissner Date: Thu, 6 Aug 2026 12:12:51 -0400 Subject: [PATCH] fix(eve): treat .devtools like generated runtime dirs AI SDK DevTools writes under .devtools. Ignore that directory in the eve dev watcher, agent discovery, and source snapshots so generation writes do not recompile or warn. Signed-off-by: Chris Fleissner Co-authored-by: Cursor --- .changeset/ignore-ai-sdk-devtools.md | 5 +++++ packages/eve/src/discover/agent.integration.test.ts | 2 +- packages/eve/src/discover/filesystem.ts | 1 + .../src/internal/nitro/dev-runtime-source-snapshot-copy.ts | 1 + .../nitro/host/dev-authored-source-watcher.scenario.test.ts | 1 + .../src/internal/nitro/host/dev-authored-source-watcher.ts | 1 + 6 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 .changeset/ignore-ai-sdk-devtools.md diff --git a/.changeset/ignore-ai-sdk-devtools.md b/.changeset/ignore-ai-sdk-devtools.md new file mode 100644 index 000000000..6b74b41b7 --- /dev/null +++ b/.changeset/ignore-ai-sdk-devtools.md @@ -0,0 +1,5 @@ +--- +"eve": patch +--- + +Treat AI SDK `.devtools` like other generated directories: ignore it in `eve dev` watching, agent discovery, and source snapshots so generation writes do not recompile or warn. diff --git a/packages/eve/src/discover/agent.integration.test.ts b/packages/eve/src/discover/agent.integration.test.ts index 90cd2bb19..fb726983c 100644 --- a/packages/eve/src/discover/agent.integration.test.ts +++ b/packages/eve/src/discover/agent.integration.test.ts @@ -486,7 +486,7 @@ describe("discoverAgent (memory)", () => { it("silently ignores generated runtime directories", async () => { const project = buildMemoryAgentProject({ - agentDirectories: [".eve", ".next", ".output", ".vercel", "node_modules"], + agentDirectories: [".devtools", ".eve", ".next", ".output", ".vercel", "node_modules"], agentFiles: { "instructions.md": "You are a precise assistant.", }, diff --git a/packages/eve/src/discover/filesystem.ts b/packages/eve/src/discover/filesystem.ts index 80d837099..814233d3c 100644 --- a/packages/eve/src/discover/filesystem.ts +++ b/packages/eve/src/discover/filesystem.ts @@ -21,6 +21,7 @@ export const PROJECT_MARKER_FILE_NAMES = ["package.json", "vercel.json"] as cons const PROJECT_MARKER_FILE_NAME_SET = new Set(PROJECT_MARKER_FILE_NAMES); const GENERATED_AGENT_DIRECTORY_NAMES = new Set([ + ".devtools", ".eve", ".next", ".output", diff --git a/packages/eve/src/internal/nitro/dev-runtime-source-snapshot-copy.ts b/packages/eve/src/internal/nitro/dev-runtime-source-snapshot-copy.ts index 64f65ec43..24575e77a 100644 --- a/packages/eve/src/internal/nitro/dev-runtime-source-snapshot-copy.ts +++ b/packages/eve/src/internal/nitro/dev-runtime-source-snapshot-copy.ts @@ -17,6 +17,7 @@ import { } from "#internal/nitro/dev-runtime-source-snapshot.js"; const SNAPSHOT_SKIP_NAMES = new Set([ + ".devtools", ".generated", ".eve", ".git", diff --git a/packages/eve/src/internal/nitro/host/dev-authored-source-watcher.scenario.test.ts b/packages/eve/src/internal/nitro/host/dev-authored-source-watcher.scenario.test.ts index 5d4176cbe..65055de97 100644 --- a/packages/eve/src/internal/nitro/host/dev-authored-source-watcher.scenario.test.ts +++ b/packages/eve/src/internal/nitro/host/dev-authored-source-watcher.scenario.test.ts @@ -131,6 +131,7 @@ describe("startAuthoredSourceWatcher", () => { try { const ignored = getIgnoredPredicate(); + expect(ignored(join(host.appRoot, ".devtools", "generations.json"))).toBe(true); expect(ignored(join(host.appRoot, ".eve", "dev-hosts", "candidate"))).toBe(true); expect(ignored(join(host.appRoot, "node_modules", "eve"))).toBe(true); expect(ignored(join(host.appRoot, "agent", "tools", "weather.ts"))).toBe(false); diff --git a/packages/eve/src/internal/nitro/host/dev-authored-source-watcher.ts b/packages/eve/src/internal/nitro/host/dev-authored-source-watcher.ts index 16dc0f551..1623c45f9 100644 --- a/packages/eve/src/internal/nitro/host/dev-authored-source-watcher.ts +++ b/packages/eve/src/internal/nitro/host/dev-authored-source-watcher.ts @@ -26,6 +26,7 @@ const WATCHED_LOCKFILE_NAMES = [ const WATCH_ROOT_MARKER_NAMES = [".git", "pnpm-workspace.yaml"] as const; const TS_CONFIG_GLOB_NAME = "tsconfig.*.json"; const WATCHER_IGNORED_DIRECTORY_NAMES = new Set([ + ".devtools", ".generated", ".eve", ".git",