From 01392d28e1d0be4ee7b41feb1c4e1e7ec445af4f Mon Sep 17 00:00:00 2001 From: Gerard Louis Recinto Date: Thu, 8 Oct 2026 10:48:06 -0700 Subject: [PATCH] gemini gate: leave the compiled tailwind.css out of the reviewed diff so small PRs stay under the size limit --- ai/prreview/gate.go | 1 + ai/prreview/prreview.go | 17 +++++++++++++++++ ai/prreview/prreview_test.go | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/ai/prreview/gate.go b/ai/prreview/gate.go index a6a986941..2b1495a1e 100644 --- a/ai/prreview/gate.go +++ b/ai/prreview/gate.go @@ -253,6 +253,7 @@ func RunGate(ctx context.Context, cfg GateConfig) error { if err != nil { return fail("Gemini review failed: could not fetch diff", err) } + diff = DropGeneratedFiles(diff) if strings.TrimSpace(diff) == "" { return fail("Gemini review inconclusive: empty diff", nil) } diff --git a/ai/prreview/prreview.go b/ai/prreview/prreview.go index 100f0dc83..bf28a8d36 100644 --- a/ai/prreview/prreview.go +++ b/ai/prreview/prreview.go @@ -230,6 +230,23 @@ func FetchFailingChecks(ctx context.Context, token, owner, repo, sha string) ([] return failing, nil } +// DropGeneratedFiles removes per-file sections for build output that is +// regenerated from source (the compiled Tailwind stylesheets), so a one-line +// minified file does not push a small change over the size limit. +func DropGeneratedFiles(diff string) string { + var out strings.Builder + skip := false + for _, line := range strings.SplitAfter(diff, "\n") { + if strings.HasPrefix(line, "diff --git ") { + skip = strings.HasSuffix(strings.TrimSpace(line), "/tailwind.css") + } + if !skip { + out.WriteString(line) + } + } + return out.String() +} + // TruncateDiff caps diff at maxBytes so the Gemini request stays within the // model's input token budget. It reports whether truncation happened. func TruncateDiff(diff string, maxBytes int) (string, bool) { diff --git a/ai/prreview/prreview_test.go b/ai/prreview/prreview_test.go index 6c2100094..f72f7ad68 100644 --- a/ai/prreview/prreview_test.go +++ b/ai/prreview/prreview_test.go @@ -462,3 +462,12 @@ func TestPostCommentSuccess(t *testing.T) { t.Fatalf("PostComment returned an unexpected error: %v", err) } } + +func TestDropGeneratedFiles(t *testing.T) { + diff := "diff --git a/demo/tailwind.css b/demo/tailwind.css\n+minified\ndiff --git a/demo/index.html b/demo/index.html\n+

\n" + got := DropGeneratedFiles(diff) + want := "diff --git a/demo/index.html b/demo/index.html\n+

\n" + if got != want { + t.Fatalf("got %q, want %q", got, want) + } +}