Skip to content

feat(ignore): support global scope for the Devin ignore file - #2618

Merged
dyoshikawa merged 2 commits into
mainfrom
resolve-issue-2597-devin-global-ignore
Aug 7, 2026
Merged

feat(ignore): support global scope for the Devin ignore file#2618
dyoshikawa merged 2 commits into
mainfrom
resolve-issue-2597-devin-global-ignore

Conversation

@dyoshikawa

Copy link
Copy Markdown
Owner

DevinIgnore.getSettablePaths took no arguments and always returned the project .devinignore, so the enterprise-wide ignore file Devin documents at ~/.codeium/.codeiumignore was unreachable. This threads global through the class and registers devin in ignoreProcessorGlobalToolTargets, following the Kiro precedent (kiro-ignore.ts) for a plain global ignore file.

Three caveats about the global path

They are recorded in a comment next to the constants and in the docs prose, because each one looks like a mistake otherwise:

  1. Legacy brand spelling. The rename to .devinignore (Desktop v3.1.7) covered only the project file; the global one is documented solely as ~/.codeium/.codeiumignore. So unlike the project path, the global read has no .devinignore fallback - there is nothing to fall back to, and accepting one would invent a filename Devin never reads.
  2. Desktop docs tree, not CLI. This is why it sits outside ~/.config/devin, where every other global Devin path lives.
  3. Enterprise positioning. Devin frames it as a way to enforce ignore rules across many repositories, not as a general per-user setting.

Notes

The ignore feature is deprecated overall, but global-scope additions to it have precedent - zed gained exactly this in a00e515. The matrix cell becomes ignore ✅🌏 via generate:tables; pnpm dev gitignore reported no change, since the new path is outside the project. The ignore e2e spec's global matrix guard caught the new target and now covers it, verifying the real global write.

Verified upstream: docs.devin.ai/desktop/context-awareness/windsurf-ignore - "placing a global .codeiumignore file in the ~/.codeium/ folder", under "For enterprise customers managing multiple repositories".

Closes #2597

🤖 Generated with Claude Code

Devin documents an enterprise-wide ignore file at ~/.codeium/.codeiumignore
that applies across every repository, but DevinIgnore only ever emitted the
project .devinignore. Thread global through the class and register devin as
a global-capable ignore target, following the Kiro precedent.

The global path deliberately keeps the legacy .codeium brand spelling, lives
outside ~/.config/devin because it is documented in the Desktop docs tree
rather than the CLI one, and is an enterprise feature. All three are recorded
next to the constants, and the global read has no legacy-name fallback since
that name is the only one documented there.
Both branches of fromFile now carry the flag, matching the Kiro and Zed
implementations, and the docs sentence is split so the parenthetical no
longer reads as if it covered devin too.
@dyoshikawa
dyoshikawa merged commit 8ae7a8b into main Aug 7, 2026
9 checks passed
@dyoshikawa
dyoshikawa deleted the resolve-issue-2597-devin-global-ignore branch August 7, 2026 16:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Follow up Devin upstream updates: global ignore scope (~/.codeium/.codeiumignore) unsupported

2 participants