diff --git a/internal/agent/preview.go b/internal/agent/preview.go index 2966333..0698270 100644 --- a/internal/agent/preview.go +++ b/internal/agent/preview.go @@ -53,15 +53,15 @@ func (a *Agent) whyExcluded(d model.Diff) ExcludeReason { return ExcludeUserRule } + if f != nil && f.HasInclude() && f.IsUserIncluded(path) { + return ExcludeNone + } + ext := a.extFromPath(path) if ext != "" && !allowedext.IsAllowedExt(ext) { return ExcludeExtension } - if f != nil && f.HasInclude() && f.IsUserIncluded(path) { - return ExcludeNone - } - if allowedext.IsExcludedPath(path) { return ExcludeDefaultPath } diff --git a/internal/agent/preview_test.go b/internal/agent/preview_test.go index 274a013..cdf21ae 100644 --- a/internal/agent/preview_test.go +++ b/internal/agent/preview_test.go @@ -207,7 +207,7 @@ func TestWhyExcluded_DefaultPathFilter(t *testing.T) { func TestWhyExcluded_UserIncludePattern(t *testing.T) { agent := New(Args{ FileFilter: &rules.FileFilter{ - Include: []string{"src/**/*.go", "pkg/**/*.go"}, + Include: []string{"src/**/*.go", "pkg/**/*.go", "**/*.supportedext"}, }, }) @@ -260,13 +260,12 @@ func TestWhyExcluded_UserIncludePattern(t *testing.T) { }, expected: ExcludeNone, }, - // --- Extension filter still takes precedence over include logic --- { - name: "unsupported extension excluded before include check", + name: "include check overrides extension exclusion", diff: model.Diff{ - NewPath: "docs/readme.md", + NewPath: "internal/test.supportedext", }, - expected: ExcludeExtension, + expected: ExcludeNone, }, { name: "unsupported extension even if path looks like include dir",