From 36232979cf530fb0784391d85cad94a8317e6bcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Grie=C3=9Fhaber?= Date: Fri, 5 Jun 2026 08:17:27 +0200 Subject: [PATCH] fix(agent): user includes should have higher priority than system supported extensions --- internal/agent/preview.go | 8 ++++---- internal/agent/preview_test.go | 9 ++++----- 2 files changed, 8 insertions(+), 9 deletions(-) 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",