feat(ignore): support global scope for the Devin ignore file - #2618
Merged
Conversation
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.
This was referenced Aug 7, 2026
Merged
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DevinIgnore.getSettablePathstook no arguments and always returned the project.devinignore, so the enterprise-wide ignore file Devin documents at~/.codeium/.codeiumignorewas unreachable. This threadsglobalthrough the class and registersdevininignoreProcessorGlobalToolTargets, 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:
.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.devinignorefallback - there is nothing to fall back to, and accepting one would invent a filename Devin never reads.~/.config/devin, where every other global Devin path lives.Notes
The ignore feature is deprecated overall, but global-scope additions to it have precedent -
zedgained exactly this in a00e515. The matrix cell becomes ignore ✅🌏 viagenerate:tables;pnpm dev gitignorereported 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
.codeiumignorefile in the~/.codeium/folder", under "For enterprise customers managing multiple repositories".Closes #2597
🤖 Generated with Claude Code