Skip to content

feat(action): add base branch size comparison in PR comments#2796

Merged
srod merged 5 commits intodevelopfrom
feat/action-base-comparison
Jan 23, 2026
Merged

feat(action): add base branch size comparison in PR comments#2796
srod merged 5 commits intodevelopfrom
feat/action-base-comparison

Conversation

@srod
Copy link
Owner

@srod srod commented Jan 23, 2026

User description

Summary

  • Add compare.ts module to fetch and compare minified file sizes against base branch
  • Update PR comments to show "vs Base" column with change percentages (✅ decrease, ⚠️ increase)
  • Add 14 unit tests for comparison logic

Completes Phase 3 of the GitHub Action implementation plan.


PR Type

Enhancement


Description

  • Add base branch size comparison module with file fetching logic

  • Implement comparison formatting with visual indicators (✅/⚠️)

  • Update PR comments to display "vs Base" column with change percentages

  • Add 14 comprehensive unit tests for comparison functions


Diagram Walkthrough

flowchart LR
  A["Minification Result"] --> B["compareWithBase"]
  B --> C["GitHub API"]
  C --> D["Base Branch Files"]
  D --> E["ComparisonResult Array"]
  E --> F["formatChange"]
  F --> G["PR Comment with vs Base Column"]
Loading

File Walkthrough

Relevant files
Enhancement
compare.ts
Base branch comparison logic and formatting                           

packages/action/src/compare.ts

  • Implements compareWithBase() to fetch and compare files against base
    branch using GitHub API
  • Handles file comparison with size calculation and percentage change
    computation
  • Provides formatChange() to format comparisons with emoji indicators
    (⚠️ for increases, ✅ for decreases)
  • Exports hasIncrease() and calculateTotalChange() utility functions for
    analysis
+228/-0 
index.ts
Integrate base comparison into main workflow                         

packages/action/src/index.ts

  • Imports compareWithBase from new compare module
  • Calls compareWithBase() before posting PR comment to fetch base branch
    comparisons
  • Passes comparison results to postPRComment() function
+6/-1     
comment.ts
Display comparison data in PR comments                                     

packages/action/src/reporters/comment.ts

  • Updates postPRComment() signature to accept optional comparisons
    parameter
  • Modifies generateCommentBody() to accept and process comparison
    results
  • Adds "vs Base" column to PR comment table with formatted change
    indicators
  • Creates comparison map for efficient lookup and conditional column
    rendering
+28/-12 
Tests
compare.test.ts
Unit tests for comparison functions                                           

packages/action/tests/compare.test.ts

  • Tests formatChange() with size increases, decreases, no change, and
    new files
  • Tests hasIncrease() to detect any file size increases across
    comparisons
  • Tests calculateTotalChange() with various scenarios including new
    files and empty arrays
  • Covers 14 test cases ensuring robust comparison logic
+221/-0 


Summary by cubic

Adds base-branch size comparison to the GitHub Action and displays a “vs Base” column in PR comments so reviewers can quickly spot increases or reductions. Runs only on PRs with a GitHub token and gracefully skips otherwise.

  • New Features

    • Compare minified file sizes with the base branch using Octokit.
    • Show “vs Base” in the PR comment with formatted change (+/-%, ⚠️/✅), including “new” for new files.
    • Integrate comparison into the action flow and comment reporter.
    • Add unit tests for formatChange, hasIncrease, calculateTotalChange, and compareWithBase.
  • Bug Fixes

    • Correct total size aggregation: totalCurrentSize now includes all files, not just comparable.
    • Fix totalChangePercent: calculate using only comparable files to avoid inflated percentages when new files are present.

Written for commit 0e8ac02. Summary will update on new commits.

Summary by CodeRabbit

  • New Features

    • PR comments now include per-file size comparisons vs. the base branch with formatted change indicators (increase, decrease, new file) and updated totals.
  • Tests

    • Added comprehensive tests covering formatting, increase detection, total aggregation, and base-branch comparison behaviors including edge cases and error handling.
  • Bug Fixes / Improvements

    • PR comment layout adjusted to optionally show per-file comparison column and handle missing or non-comparable base data.

✏️ Tip: You can customize this high-level summary in your review settings.

@changeset-bot
Copy link

changeset-bot bot commented Jan 23, 2026

⚠️ No Changeset found

Latest commit: 0e8ac02

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 23, 2026

Warning

Rate limit exceeded

@srod has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 2 minutes and 36 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Walkthrough

Adds a compare module that fetches base-branch file contents via GitHub, computes per-file and aggregate size changes for minified assets, integrates comparisons into PR comment generation, and includes extensive tests for comparison behaviors and edge cases.

Changes

Cohort / File(s) Summary
Tests
packages/action/__tests__/compare.test.ts
New comprehensive test suite for formatChange, hasIncrease, calculateTotalChange, and compareWithBase covering token/PR presence, 404s, directories/symlinks, multiple files, zero-base and all-new-file edge cases.
Comparison logic
packages/action/src/compare.ts
New module exporting compareWithBase, formatChange, hasIncrease, calculateTotalChange (and internal compareFile): fetches base files via octokit, treats 404s as new files, computes per-file change and aggregates, logs warnings on errors.
Action entry
packages/action/src/index.ts
Imports compareWithBase and now calls it during PR runs; passes resulting comparisons into postPRComment.
PR comment reporter
packages/action/src/reporters/comment.ts
postPRComment and generateCommentBody signatures extended to accept optional comparisons; renders an optional "vs Base" column and per-file change text via formatChange; updates imports/types accordingly.
Package manifest
package.json
Manifest updated alongside added module/tests (dependency/dev metadata adjustments).

Sequence Diagram

sequenceDiagram
    participant Action as GitHub Action
    participant Compare as Compare Module
    participant Octokit as Octokit Client
    participant GitHub as GitHub API
    participant Reporter as PR Comment Reporter

    Action->>Compare: compareWithBase(result, githubToken)
    Compare->>Compare: Verify PR context & token
    loop per file
        Compare->>Octokit: repos.getContent(owner, repo, path, ref=base)
        Octokit->>GitHub: HTTP request
        GitHub-->>Octokit: 200 / 404 / error
        Octokit-->>Compare: content or error
        Compare->>Compare: compute baseSize, currentSize, change, isNew
    end
    Compare-->>Action: ComparisonResult[]
    Action->>Reporter: postPRComment(result, githubToken, comparisons)
    Reporter->>Reporter: generateCommentBody(result, comparisons)
    Reporter->>Reporter: formatChange(comparison)
    Reporter->>GitHub: create/update PR comment via Octokit
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Poem

🐰✨ I hopped through diffs with whiskers keen,

I fetched base sizes from branches unseen,
I counted bytes, then nudged a tiny sign,
New files, shrinks, and grows — each row in a line,
A rabbit’s note: the bundle’s lean or been.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title directly summarizes the main feature: adding base branch size comparison to PR comments, which is the primary objective of this changeset.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@qodo-code-review
Copy link

qodo-code-review bot commented Jan 23, 2026

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status:
Unvalidated path input: The external fileResult.file value is used directly as the GitHub API path parameter
without visible validation/sanitization, so reviewers should confirm it cannot be
user-controlled in a way that enables unexpected repository content access or path
manipulation.

Referred Code
for (const fileResult of result.files) {
    const comparison = await compareFile(
        octokit,
        owner,
        repo,
        baseBranch,
        fileResult.file,
        fileResult.minifiedSize
    );

Learn more about managing compliance generic rules or creating your own custom rules

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@qodo-code-review
Copy link

qodo-code-review bot commented Jan 23, 2026

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Fix inconsistent total size calculation
Suggestion Impact:The commit modified calculateTotalChange in the exact area referenced by the suggestion by hoisting totalCurrentSize into a single precomputed reduce and reusing it in the comparable.length === 0 return path. However, it did not implement the suggested behavior of setting totalCurrentSize to 0 when no comparable files exist; instead it still sums currentSize across all comparisons.

code diff:

@@ -192,6 +191,11 @@
     totalCurrentSize: number;
     totalChangePercent: number | null;
 } {
+    const totalCurrentSize = comparisons.reduce(
+        (sum, c) => sum + c.currentSize,
+        0
+    );
+
     const comparable = comparisons.filter(
         (c) => !c.isNew && c.baseSize !== null
     );
@@ -199,20 +203,13 @@
     if (comparable.length === 0) {
         return {
             totalBaseSize: 0,
-            totalCurrentSize: comparisons.reduce(
-                (sum, c) => sum + c.currentSize,
-                0
-            ),
+            totalCurrentSize,
             totalChangePercent: null,
         };
     }
 
     const totalBaseSize = comparable.reduce(
         (sum, c) => sum + (c.baseSize ?? 0),
-        0
-    );
-    const totalCurrentSize = comparable.reduce(
-        (sum, c) => sum + c.currentSize,
         0
     );
     const totalChangePercent =

In calculateTotalChange, consistently calculate totalCurrentSize using only
comparable files by setting it to 0 when no comparable files exist.

packages/action/src/compare.ts [190-228]

 export function calculateTotalChange(comparisons: ComparisonResult[]): {
     totalBaseSize: number;
     totalCurrentSize: number;
     totalChangePercent: number | null;
 } {
     const comparable = comparisons.filter(
         (c) => !c.isNew && c.baseSize !== null
     );
 
     if (comparable.length === 0) {
         return {
             totalBaseSize: 0,
-            totalCurrentSize: comparisons.reduce(
-                (sum, c) => sum + c.currentSize,
-                0
-            ),
+            totalCurrentSize: 0,
             totalChangePercent: null,
         };
     }
 
     const totalBaseSize = comparable.reduce(
         (sum, c) => sum + (c.baseSize ?? 0),
         0
     );
     const totalCurrentSize = comparable.reduce(
         (sum, c) => sum + c.currentSize,
         0
     );
     const totalChangePercent =
         totalBaseSize > 0
             ? ((totalCurrentSize - totalBaseSize) / totalBaseSize) * 100
             : 0;
 
     return {
         totalBaseSize,
         totalCurrentSize,
         totalChangePercent,
     };
 }

[Suggestion processed]

Suggestion importance[1-10]: 7

__

Why: The suggestion correctly identifies a logical inconsistency in how totalCurrentSize is calculated, which could lead to confusing reports, and proposes a valid fix to make the function's behavior consistent.

Medium
General
Parallelize file comparisons
Suggestion Impact:The sequential await-in-loop for compareFile calls was replaced with a Promise.all(result.files.map(...)) implementation, running comparisons in parallel as suggested.

code diff:

-    const results: ComparisonResult[] = [];
-
-    for (const fileResult of result.files) {
-        const comparison = await compareFile(
-            octokit,
-            owner,
-            repo,
-            baseBranch,
-            fileResult.file,
-            fileResult.minifiedSize
-        );
-        results.push(comparison);
-    }
+    const results = await Promise.all(
+        result.files.map((fileResult) =>
+            compareFile(
+                octokit,
+                owner,
+                repo,
+                baseBranch,
+                fileResult.file,
+                fileResult.minifiedSize
+            )
+        )
+    );

Use Promise.all to run file comparison API calls in parallel instead of
sequentially, improving performance.

packages/action/src/compare.ts [43-53]

-for (const fileResult of result.files) {
-    const comparison = await compareFile(
-        octokit,
-        owner,
-        repo,
-        baseBranch,
-        fileResult.file,
-        fileResult.minifiedSize
-    );
-    results.push(comparison);
-}
+const results = await Promise.all(
+    result.files.map((f) =>
+        compareFile(
+            octokit,
+            owner,
+            repo,
+            baseBranch,
+            f.file,
+            f.minifiedSize
+        )
+    )
+);

[Suggestion processed]

Suggestion importance[1-10]: 7

__

Why: The suggestion correctly proposes using Promise.all to parallelize API calls, which is a significant performance improvement for an I/O-bound operation.

Medium
Round change percentage

Round the calculated percentage change to one decimal place immediately to
ensure data consistency and avoid floating-point precision issues.

packages/action/src/compare.ts [110-115]

-const change =
+const rawChange =
     baseSize > 0
         ? ((currentSize - baseSize) / baseSize) * 100
         : currentSize > 0
           ? 100
           : 0;
+const change = parseFloat(rawChange.toFixed(1));
  • Apply / Chat
Suggestion importance[1-10]: 5

__

Why: The suggestion improves data consistency by rounding the percentage change at the point of calculation, which prevents potential floating-point inaccuracies and ensures the stored value matches its formatted representation.

Low
  • Update

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@packages/action/src/compare.ts`:
- Around line 190-228: The calculateTotalChange function currently computes
totalCurrentSize only from comparable (non-new) items in the main branch; change
it so totalCurrentSize always sums c.currentSize for all comparisons (use
comparisons.reduce((sum,c)=>sum+c.currentSize,0)), while keeping totalBaseSize
computed from comparable (c.baseSize) and preserving totalChangePercent logic
(null when there are no comparable entries, otherwise compute percent using
totalBaseSize and the always-included totalCurrentSize). Update references in
calculateTotalChange to use the new totalCurrentSize calculation and leave the
comparable-based totalBaseSize and percent logic intact.
🧹 Nitpick comments (3)
packages/action/src/compare.ts (2)

43-53: Consider parallel file comparison for better performance.

The sequential for...of loop makes API calls one at a time. For PRs with many files, this could be slow. Consider using Promise.all for parallel requests.

♻️ Proposed parallel processing
-    const results: ComparisonResult[] = [];
-
-    for (const fileResult of result.files) {
-        const comparison = await compareFile(
-            octokit,
-            owner,
-            repo,
-            baseBranch,
-            fileResult.file,
-            fileResult.minifiedSize
-        );
-        results.push(comparison);
-    }
-
-    return results;
+    const results = await Promise.all(
+        result.files.map((fileResult) =>
+            compareFile(
+                octokit,
+                owner,
+                repo,
+                baseBranch,
+                fileResult.file,
+                fileResult.minifiedSize
+            )
+        )
+    );
+
+    return results;

As per coding guidelines, use Promise.all for parallel operations where all must succeed.


161-170: Zero change shows success emoji — verify this is intentional.

When change === 0, the function returns +0.0% ✅. The success emoji for "no change" is reasonable, but the + sign for zero might be unexpected. Consider whether 0.0% ✅ (without the +) would be clearer.

♻️ Optional: Remove plus sign for zero change
-    const sign = comparison.change >= 0 ? "+" : "";
+    const sign = comparison.change > 0 ? "+" : "";
packages/action/__tests__/compare.test.ts (1)

1-221: Consider adding tests for compareWithBase.

The main exported function compareWithBase lacks test coverage. While it requires mocking @actions/github, testing the orchestration logic would improve confidence.

Do you want me to generate test cases for compareWithBase using Vitest mocks for @actions/github?

@greptile-apps
Copy link

greptile-apps bot commented Jan 23, 2026

Greptile Overview

Greptile Summary

This PR adds base branch size comparison to the GitHub Action's PR comments. The implementation fetches minified file sizes from the base branch using the GitHub API and displays changes as a new "vs Base" column with visual indicators (⚠️ for increases, ✅ for decreases).

Key changes:

  • New compare.ts module with compareWithBase() function that uses Promise.all for parallel API calls
  • Added formatChange(), hasIncrease(), and calculateTotalChange() utility functions
  • Updated PR comment format to conditionally show comparison column when available
  • 14 comprehensive unit tests covering edge cases (new files, errors, zero sizes, multiple files)
  • Proper error handling with graceful degradation when GitHub token is missing or API calls fail
  • Follows repository code style: JSDoc comments, copyright headers, double quotes, 4-space indentation

The implementation is backward-compatible and handles edge cases well (404s for new files, directory responses, symlinks, network errors). The comparison feature only runs on PRs with a valid GitHub token, gracefully skipping otherwise.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • The implementation is well-designed with comprehensive test coverage (14 test cases), proper error handling, graceful degradation, and follows all repository conventions. The changes are additive and backward-compatible, with parallel API calls for performance. All code style requirements are met (JSDoc, copyright headers, formatting). No security concerns or logical errors found.
  • No files require special attention

Important Files Changed

Filename Overview
packages/action/src/compare.ts New module for base branch comparison with proper error handling, parallel API calls, and comprehensive JSDoc documentation following repository standards
packages/action/tests/compare.test.ts Comprehensive test coverage with 14 test cases covering all edge cases including error scenarios, new files, zero sizes, and multiple file handling
packages/action/src/index.ts Clean integration of base comparison into workflow with proper sequencing before PR comment generation
packages/action/src/reporters/comment.ts Backward-compatible changes to display comparison column in PR comments with conditional rendering based on comparison availability

Sequence Diagram

sequenceDiagram
    participant Action as GitHub Action
    participant Index as index.ts
    participant Compare as compare.ts
    participant GitHub as GitHub API
    participant Comment as comment.ts
    
    Action->>Index: run()
    Index->>Index: runMinification(inputs)
    Index-->>Index: MinifyResult
    
    alt is PR and reportPRComment enabled
        Index->>Compare: compareWithBase(result, token)
        
        alt has token and is PR
            loop for each file
                Compare->>GitHub: getContent(path, baseBranch)
                alt file exists
                    GitHub-->>Compare: {type: "file", size: baseSize}
                    Compare->>Compare: calculate change %
                else file not found (404)
                    GitHub-->>Compare: 404 error
                    Compare->>Compare: mark as new file
                else other error
                    GitHub-->>Compare: error
                    Compare->>Compare: log warning, mark as new
                end
            end
            Compare-->>Index: ComparisonResult[]
        else no token or not PR
            Compare-->>Index: []
        end
        
        Index->>Comment: postPRComment(result, token, comparisons)
        Comment->>Comment: generateCommentBody(result, comparisons)
        Comment->>Comment: build table with "vs Base" column
        Comment->>GitHub: create/update PR comment
        GitHub-->>Comment: success
        Comment-->>Index: complete
    end
    
    Index-->>Action: success
Loading

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Comment on lines 43 to 53
for (const fileResult of result.files) {
const comparison = await compareFile(
octokit,
owner,
repo,
baseBranch,
fileResult.file,
fileResult.minifiedSize
);
results.push(comparison);
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sequential API calls - use Promise.all for parallel execution.

Suggested change
for (const fileResult of result.files) {
const comparison = await compareFile(
octokit,
owner,
repo,
baseBranch,
fileResult.file,
fileResult.minifiedSize
);
results.push(comparison);
}
const results = await Promise.all(
result.files.map((fileResult) =>
compareFile(
octokit,
owner,
repo,
baseBranch,
fileResult.file,
fileResult.minifiedSize
)
)
);
return results;

Context Used: Context from dashboard - AGENTS.md (source)

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Prompt To Fix With AI
This is a comment left during a code review.
Path: packages/action/src/compare.ts
Line: 43:53

Comment:
Sequential API calls - use `Promise.all` for parallel execution.

```suggestion
    const results = await Promise.all(
        result.files.map((fileResult) =>
            compareFile(
                octokit,
                owner,
                repo,
                baseBranch,
                fileResult.file,
                fileResult.minifiedSize
            )
        )
    );

    return results;
```

**Context Used:** Context from `dashboard` - AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=1faf77f6-13aa-4727-b03f-89976b6a776a))

<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>

How can I resolve this? If you propose a fix, please make it concise.

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 4 files

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 2 files (changes from recent commits).

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="packages/action/src/compare.ts">

<violation number="1" location="packages/action/src/compare.ts:194">
P2: totalChangePercent now uses the current size from all files, including new ones, while totalBaseSize is only for comparable files. This inflates the percent change whenever new files are present. Calculate the percent change using a current size total from comparable files.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Previously totalChangePercent incorrectly included new files' sizes in the
current total, inflating the percent when new files were present. Now uses
only comparable files' current sizes for accurate before/after comparison.
@srod
Copy link
Owner Author

srod commented Jan 23, 2026

@greptile

@srod
Copy link
Owner Author

srod commented Jan 23, 2026

@coderabbitai review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 23, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@srod srod merged commit 884ebde into develop Jan 23, 2026
14 checks passed
@srod srod deleted the feat/action-base-comparison branch January 23, 2026 21:28
@codecov
Copy link

codecov bot commented Jan 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.40%. Comparing base (9990591) to head (0e8ac02).
⚠️ Report is 6 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #2796      +/-   ##
===========================================
+ Coverage    99.37%   99.40%   +0.02%     
===========================================
  Files           63       64       +1     
  Lines         1287     1345      +58     
  Branches       397      419      +22     
===========================================
+ Hits          1279     1337      +58     
  Misses           8        8              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant