Skip to content

deps: update all dependencies - #423

Merged
jongio merged 1 commit into
mainfrom
jongio-deps-update-2026-09-10
Sep 10, 2026
Merged

deps: update all dependencies#423
jongio merged 1 commit into
mainfrom
jongio-deps-update-2026-09-10

Conversation

@jongio

@jongio jongio commented Sep 10, 2026

Copy link
Copy Markdown
Owner

Routine dependency refresh across Go modules and pinned GitHub Actions.

Changes

  • Upgrade 19 direct and transitive Go module requirements, including mcp-go 1.0.0, Anthropic SDK 1.72.0, Copilot SDK 1.0.13, and Bubbles 2.2.1.
  • Upgrade actions/deploy-pages to 5.0.1 and anchore/sbom-action/download-syft to 0.24.2.
  • Increase the WSL preflight timeout to 30 minutes so the full Linux suite can complete on mounted worktrees.

Validation

  • build, vet, lint, tests, race tests, vulnerability scan, formatting, deadcode, and benchmark gates: pass
  • WSL suite: passed after dependency update; final preflight used the documented skip because the local WSL VM later became unavailable with HCS_E_CONNECTION_TIMEOUT
  • mage install: pass

Upgrade Go modules and pinned GitHub Actions to current stable releases. Increase the WSL preflight timeout so the full Linux suite can complete on mounted worktrees.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@jongio jongio added the dependencies Dependency updates label Sep 10, 2026
@jongio jongio self-assigned this Sep 10, 2026
@jongio jongio added the deps Dependency updates label Sep 10, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: linux-amd64

📊 Results vs main (same-runner) , click to expand
goos: linux
goarch: amd64
pkg: github.com/jongio/grut/internal/ai
cpu: AMD EPYC 7763 64-Core Processor                
                                       │ bench-baseline.txt │         bench-current.txt          │
                                       │       sec/op       │   sec/op     vs base               │
RedactContent/small_500B-4                      113.5µ ± 1%   112.1µ ± 2%   -1.25% (p=0.015 n=6)
RedactContent/medium_5KB-4                      1.555m ± 1%   1.528m ± 4%        ~ (p=0.065 n=6)
RedactContent/large_50KB-4                      16.88m ± 7%   16.51m ± 0%   -2.15% (p=0.002 n=6)
RedactContent_NoMatch/small_500B-4              164.4µ ± 3%   162.6µ ± 4%        ~ (p=0.485 n=6)
RedactContent_NoMatch/medium_5KB-4              1.887m ± 1%   1.856m ± 2%   -1.65% (p=0.002 n=6)
RedactContent_NoMatch/large_50KB-4              19.96m ± 1%   19.66m ± 1%   -1.47% (p=0.015 n=6)
ShouldExcludeFile/match_builtin-4               68.36n ± 1%   70.90n ± 4%   +3.72% (p=0.041 n=6)
ShouldExcludeFile/match_user_pattern-4          2.896µ ± 0%   2.408µ ± 0%  -16.87% (p=0.002 n=6)
ShouldExcludeFile/no_match-4                    2.007µ ± 1%   1.663µ ± 0%  -17.16% (p=0.002 n=6)
NewRedactor-4                                   772.3n ± 1%   778.6n ± 2%   +0.81% (p=0.006 n=6)
geomean                                         75.04µ        71.93µ        -4.14%

                                       │ bench-baseline.txt │            bench-current.txt            │
                                       │        B/op        │      B/op       vs base                 │
RedactContent/small_500B-4                  2.880Ki ±  0%     2.877Ki ±   0%        ~ (p=0.141 n=6)
RedactContent/medium_5KB-4                  36.34Ki ±  0%     36.33Ki ±   0%        ~ (p=0.937 n=6)
RedactContent/large_50KB-4                  370.3Ki ±  0%     370.3Ki ±   0%        ~ (p=0.619 n=6)
RedactContent_NoMatch/small_500B-4            4.000 ±   ?       2.000 ±    ?        ~ (p=0.545 n=6)
RedactContent_NoMatch/medium_5KB-4            74.50 ± 99%       29.00 ± 138%        ~ (p=0.102 n=6)
RedactContent_NoMatch/large_50KB-4            123.0 ± 93%       120.0 ±  93%        ~ (p=0.545 n=6)
ShouldExcludeFile/match_builtin-4             0.000 ±  0%       0.000 ±   0%        ~ (p=1.000 n=6) ¹
ShouldExcludeFile/match_user_pattern-4        0.000 ±  0%       0.000 ±   0%        ~ (p=1.000 n=6) ¹
ShouldExcludeFile/no_match-4                  0.000 ±  0%       0.000 ±   0%        ~ (p=1.000 n=6) ¹
NewRedactor-4                               1.320Ki ±  0%     1.320Ki ±   0%        ~ (p=1.000 n=6) ¹
geomean                                                   ²                   -15.32%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                       │ bench-baseline.txt │         bench-current.txt          │
                                       │     allocs/op      │ allocs/op   vs base                │
RedactContent/small_500B-4                     12.00 ± 0%     12.00 ± 0%       ~ (p=1.000 n=6) ¹
RedactContent/medium_5KB-4                     60.00 ± 0%     60.00 ± 0%       ~ (p=1.000 n=6) ¹
RedactContent/large_50KB-4                     483.0 ± 0%     483.0 ± 0%       ~ (p=1.000 n=6)
RedactContent_NoMatch/small_500B-4             0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
RedactContent_NoMatch/medium_5KB-4             0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
RedactContent_NoMatch/large_50KB-4             0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
ShouldExcludeFile/match_builtin-4              0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
ShouldExcludeFile/match_user_pattern-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
ShouldExcludeFile/no_match-4                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
NewRedactor-4                                  5.000 ± 0%     5.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                   ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/jongio/grut/internal/config
                                   │ bench-baseline.txt │         bench-current.txt         │
                                   │       sec/op       │   sec/op     vs base              │
Validate/valid_defaults-4                   2.364µ ± 1%   2.366µ ± 3%       ~ (p=0.738 n=6)
Validate/with_arrays-4                      9.367µ ± 1%   9.384µ ± 1%       ~ (p=0.937 n=6)
Validate/invalid_multi_error-4              5.285µ ± 0%   5.331µ ± 5%  +0.87% (p=0.015 n=6)
ParseDefaultsTOML-4                         33.82µ ± 2%   33.95µ ± 1%       ~ (p=0.699 n=6)
RejectEmbeddedKeys/clean_config-4           1.556µ ± 1%   1.559µ ± 1%       ~ (p=0.485 n=6)
RejectEmbeddedKeys/with_patterns-4          9.913µ ± 1%   9.903µ ± 2%       ~ (p=0.310 n=6)
AppendEnumErr/match_first-4                 33.47n ± 2%   33.35n ± 1%       ~ (p=0.240 n=6)
AppendEnumErr/match_last-4                  33.73n ± 1%   33.56n ± 1%       ~ (p=0.368 n=6)
AppendEnumErr/no_match-4                    881.9n ± 0%   881.5n ± 1%       ~ (p=0.937 n=6)
geomean                                     1.578µ        1.579µ       +0.07%

                                   │ bench-baseline.txt │          bench-current.txt           │
                                   │        B/op        │     B/op      vs base                │
Validate/valid_defaults-4                  867.5 ± 0%       868.0 ± 0%       ~ (p=0.545 n=6)
Validate/with_arrays-4                     867.5 ± 0%       867.0 ± 0%       ~ (p=0.861 n=6)
Validate/invalid_multi_error-4           2.037Ki ± 0%     2.038Ki ± 0%       ~ (p=0.634 n=6)
ParseDefaultsTOML-4                      1.836Ki ± 0%     1.836Ki ± 0%       ~ (p=1.000 n=6)
RejectEmbeddedKeys/clean_config-4          0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
RejectEmbeddedKeys/with_patterns-4         0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
AppendEnumErr/match_first-4                48.00 ± 0%       48.00 ± 0%       ~ (p=1.000 n=6) ¹
AppendEnumErr/match_last-4                 48.00 ± 0%       48.00 ± 0%       ~ (p=1.000 n=6) ¹
AppendEnumErr/no_match-4                   346.0 ± 0%       346.0 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                               ²                 +0.01%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                   │ bench-baseline.txt │         bench-current.txt          │
                                   │     allocs/op      │ allocs/op   vs base                │
Validate/valid_defaults-4                  18.00 ± 0%     18.00 ± 0%       ~ (p=1.000 n=6) ¹
Validate/with_arrays-4                     18.00 ± 0%     18.00 ± 0%       ~ (p=1.000 n=6) ¹
Validate/invalid_multi_error-4             58.00 ± 0%     58.00 ± 0%       ~ (p=1.000 n=6) ¹
ParseDefaultsTOML-4                        52.00 ± 0%     52.00 ± 0%       ~ (p=1.000 n=6) ¹
RejectEmbeddedKeys/clean_config-4          0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
RejectEmbeddedKeys/with_patterns-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
AppendEnumErr/match_first-4                1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=6) ¹
AppendEnumErr/match_last-4                 1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=6) ¹
AppendEnumErr/no_match-4                   12.00 ± 0%     12.00 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                               ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/jongio/grut/internal/crashlog
                                 │ bench-baseline.txt │         bench-current.txt         │
                                 │       sec/op       │   sec/op     vs base              │
ScrubPII/small_100B-4                     12.91µ ± 1%   12.88µ ± 6%       ~ (p=0.699 n=6)
ScrubPII/medium_1KB-4                     225.6µ ± 1%   224.8µ ± 1%       ~ (p=0.485 n=6)
ScrubPII/large_10KB-4                     3.055m ± 1%   3.036m ± 8%       ~ (p=0.818 n=6)
ScrubPII_NoSecrets/100B-4                 23.74µ ± 0%   23.56µ ± 1%  -0.74% (p=0.015 n=6)
ScrubPII_NoSecrets/1KB-4                  233.3µ ± 1%   233.6µ ± 0%       ~ (p=0.589 n=6)
ScrubPII_NoSecrets/10KB-4                 2.888m ± 1%   2.882m ± 0%       ~ (p=0.394 n=6)
ScrubLogTail/10_entries-4                 129.3µ ± 1%   129.0µ ± 3%       ~ (p=0.818 n=6)
ScrubLogTail/50_entries-4                 646.4µ ± 3%   644.8µ ± 1%       ~ (p=0.394 n=6)
ScrubLogTail/100_entries_mixed-4          10.79m ± 3%   10.77m ± 1%       ~ (p=0.485 n=6)
geomean                                   369.5µ        368.4µ       -0.30%

                                 │ bench-baseline.txt │         bench-current.txt          │
                                 │        B/op        │     B/op      vs base              │
ScrubPII/small_100B-4                      913.0 ± 0%     913.0 ± 0%       ~ (p=0.866 n=6)
ScrubPII/medium_1KB-4                    11.89Ki ± 0%   11.89Ki ± 0%       ~ (p=0.777 n=6)
ScrubPII/large_10KB-4                    227.9Ki ± 0%   228.3Ki ± 0%  +0.15% (p=0.004 n=6)
ScrubPII_NoSecrets/100B-4                1.173Ki ± 0%   1.173Ki ± 0%       ~ (p=0.695 n=6)
ScrubPII_NoSecrets/1KB-4                 10.09Ki ± 0%   10.09Ki ± 0%       ~ (p=0.874 n=6)
ScrubPII_NoSecrets/10KB-4                101.0Ki ± 0%   100.8Ki ± 0%  -0.30% (p=0.026 n=6)
ScrubLogTail/10_entries-4                9.075Ki ± 0%   9.079Ki ± 0%       ~ (p=0.669 n=6)
ScrubLogTail/50_entries-4                45.49Ki ± 0%   45.48Ki ± 0%       ~ (p=0.729 n=6)
ScrubLogTail/100_entries_mixed-4         545.2Ki ± 0%   545.5Ki ± 0%       ~ (p=0.747 n=6)
geomean                                  20.54Ki        20.54Ki       -0.00%

                                 │ bench-baseline.txt │          bench-current.txt          │
                                 │     allocs/op      │  allocs/op   vs base                │
ScrubPII/small_100B-4                      17.00 ± 0%    17.00 ± 0%       ~ (p=1.000 n=6) ¹
ScrubPII/medium_1KB-4                      27.00 ± 0%    27.00 ± 0%       ~ (p=1.000 n=6) ¹
ScrubPII/large_10KB-4                      79.00 ± 1%    80.00 ± 1%       ~ (p=0.242 n=6)
ScrubPII_NoSecrets/100B-4                  15.00 ± 0%    15.00 ± 0%       ~ (p=1.000 n=6) ¹
ScrubPII_NoSecrets/1KB-4                   15.00 ± 0%    15.00 ± 0%       ~ (p=1.000 n=6) ¹
ScrubPII_NoSecrets/10KB-4                  15.00 ± 0%    15.00 ± 0%       ~ (p=1.000 n=6) ¹
ScrubLogTail/10_entries-4                  171.0 ± 0%    171.0 ± 0%       ~ (p=1.000 n=6) ¹
ScrubLogTail/50_entries-4                  851.0 ± 0%    851.0 ± 0%       ~ (p=1.000 n=6) ¹
ScrubLogTail/100_entries_mixed-4          1.909k ± 0%   1.909k ± 0%       ~ (p=1.000 n=6) ¹
geomean                                    68.68         68.78       +0.14%
¹ all samples are equal

pkg: github.com/jongio/grut/internal/git
                               │ bench-baseline.txt │         bench-current.txt         │
                               │       sec/op       │   sec/op     vs base              │
ParseStatus/10_files-4                  1.767µ ± 1%   1.758µ ± 1%       ~ (p=0.052 n=6)
ParseStatus/100_files-4                 15.24µ ± 1%   15.27µ ± 1%       ~ (p=0.699 n=6)
ParseStatus/500_files-4                 73.94µ ± 1%   74.32µ ± 6%       ~ (p=0.132 n=6)
ParseStatus/100_renamed-4               22.68µ ± 0%   22.81µ ± 1%  +0.58% (p=0.043 n=6)
ParseStatusBranch-4                     1.667µ ± 1%   1.671µ ± 1%       ~ (p=0.465 n=6)
ParseDiff/10_lines-4                    1.047µ ± 8%   1.047µ ± 2%       ~ (p=0.561 n=6)
ParseDiff/100_lines-4                   6.615µ ± 1%   6.629µ ± 1%       ~ (p=1.000 n=6)
ParseDiff/1000_lines-4                  65.68µ ± 2%   66.10µ ± 1%       ~ (p=0.310 n=6)
ParseHunkHeader/simple-4                98.69n ± 0%   98.48n ± 1%       ~ (p=0.372 n=6)
ParseHunkHeader/with_context-4          104.3n ± 0%   104.5n ± 0%       ~ (p=0.461 n=6)
ParseHunkHeader/large_range-4           116.3n ± 0%   116.8n ± 1%       ~ (p=0.117 n=6)
UndoStack/record_50-4                   20.33µ ± 3%   20.14µ ± 1%  -0.94% (p=0.041 n=6)
UndoStack/record_overflow-4             80.11µ ± 1%   79.92µ ± 1%       ~ (p=0.145 n=6)
UndoStack/peek_undo-4                   8.476n ± 0%   8.470n ± 0%       ~ (p=0.143 n=6)
UndoStack/can_undo_redo-4               11.34n ± 0%   11.34n ± 0%       ~ (p=0.130 n=6)
JoinPaths-4                             1.183µ ± 2%   1.177µ ± 2%       ~ (p=0.372 n=6)
SplitPaths-4                            2.175µ ± 2%   2.178µ ± 1%       ~ (p=0.699 n=6)
geomean                                 1.771µ        1.771µ       +0.03%

                               │ bench-baseline.txt │          bench-current.txt           │
                               │        B/op        │     B/op      vs base                │
ParseStatus/10_files-4               2.641Ki ± 0%     2.641Ki ± 0%       ~ (p=1.000 n=6) ¹
ParseStatus/100_files-4              24.66Ki ± 0%     24.66Ki ± 0%       ~ (p=1.000 n=6) ¹
ParseStatus/500_files-4              111.9Ki ± 0%     111.9Ki ± 0%       ~ (p=1.000 n=6) ¹
ParseStatus/100_renamed-4            32.16Ki ± 0%     32.16Ki ± 0%       ~ (p=1.000 n=6) ¹
ParseStatusBranch-4                    928.0 ± 0%       928.0 ± 0%       ~ (p=1.000 n=6) ¹
ParseDiff/10_lines-4                 1.703Ki ± 0%     1.703Ki ± 0%       ~ (p=1.000 n=6) ¹
ParseDiff/100_lines-4                11.02Ki ± 0%     11.02Ki ± 0%       ~ (p=1.000 n=6) ¹
ParseDiff/1000_lines-4               116.5Ki ± 0%     116.5Ki ± 0%       ~ (p=1.000 n=6) ¹
ParseHunkHeader/simple-4               32.00 ± 0%       32.00 ± 0%       ~ (p=1.000 n=6) ¹
ParseHunkHeader/with_context-4         32.00 ± 0%       32.00 ± 0%       ~ (p=1.000 n=6) ¹
ParseHunkHeader/large_range-4          32.00 ± 0%       32.00 ± 0%       ~ (p=1.000 n=6) ¹
UndoStack/record_50-4                22.91Ki ± 0%     22.91Ki ± 0%       ~ (p=1.000 n=6) ¹
UndoStack/record_overflow-4          87.27Ki ± 0%     87.27Ki ± 0%       ~ (p=1.000 n=6)
UndoStack/peek_undo-4                  0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
UndoStack/can_undo_redo-4              0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
JoinPaths-4                          2.625Ki ± 0%     2.625Ki ± 0%       ~ (p=1.000 n=6) ¹
SplitPaths-4                         6.062Ki ± 0%     6.062Ki ± 0%       ~ (p=1.000 n=6) ¹
geomean                                           ²                 +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                               │ bench-baseline.txt │         bench-current.txt          │
                               │     allocs/op      │ allocs/op   vs base                │
ParseStatus/10_files-4                 14.00 ± 0%     14.00 ± 0%       ~ (p=1.000 n=6) ¹
ParseStatus/100_files-4                89.00 ± 0%     89.00 ± 0%       ~ (p=1.000 n=6) ¹
ParseStatus/500_files-4                411.0 ± 0%     411.0 ± 0%       ~ (p=1.000 n=6) ¹
ParseStatus/100_renamed-4              209.0 ± 0%     209.0 ± 0%       ~ (p=1.000 n=6) ¹
ParseStatusBranch-4                    2.000 ± 0%     2.000 ± 0%       ~ (p=1.000 n=6) ¹
ParseDiff/10_lines-4                   9.000 ± 0%     9.000 ± 0%       ~ (p=1.000 n=6) ¹
ParseDiff/100_lines-4                  46.00 ± 0%     46.00 ± 0%       ~ (p=1.000 n=6) ¹
ParseDiff/1000_lines-4                 448.0 ± 0%     448.0 ± 0%       ~ (p=1.000 n=6) ¹
ParseHunkHeader/simple-4               1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=6) ¹
ParseHunkHeader/with_context-4         1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=6) ¹
ParseHunkHeader/large_range-4          1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=6) ¹
UndoStack/record_50-4                  208.0 ± 0%     208.0 ± 0%       ~ (p=1.000 n=6) ¹
UndoStack/record_overflow-4            811.0 ± 0%     811.0 ± 0%       ~ (p=1.000 n=6) ¹
UndoStack/peek_undo-4                  0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
UndoStack/can_undo_redo-4              0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
JoinPaths-4                            1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=6) ¹
SplitPaths-4                           7.000 ± 0%     7.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                           ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/jongio/grut/internal/markdown
                                   │ bench-baseline.txt │         bench-current.txt         │
                                   │       sec/op       │   sec/op     vs base              │
RenderStaticCached/same_width-4             533.1µ ± 1%   525.3µ ± 0%  -1.46% (p=0.002 n=6)
RenderStaticCached/varying_width-4          608.2µ ± 9%   598.8µ ± 0%  -1.54% (p=0.002 n=6)
RenderStaticCold-4                          547.7µ ± 1%   541.0µ ± 1%  -1.21% (p=0.002 n=6)
geomean                                     562.1µ        554.2µ       -1.40%

                                   │ bench-baseline.txt │         bench-current.txt          │
                                   │        B/op        │     B/op      vs base              │
RenderStaticCached/same_width-4            121.8Ki ± 0%   121.8Ki ± 0%       ~ (p=0.777 n=6)
RenderStaticCached/varying_width-4         144.1Ki ± 0%   144.2Ki ± 0%       ~ (p=0.589 n=6)
RenderStaticCold-4                         161.6Ki ± 0%   163.0Ki ± 1%  +0.86% (p=0.002 n=6)
geomean                                    141.6Ki        142.0Ki       +0.31%

                                   │ bench-baseline.txt │          bench-current.txt          │
                                   │     allocs/op      │  allocs/op   vs base                │
RenderStaticCached/same_width-4             12.18k ± 0%   12.18k ± 0%       ~ (p=1.000 n=6) ¹
RenderStaticCached/varying_width-4          13.77k ± 0%   13.76k ± 0%       ~ (p=0.524 n=6)
RenderStaticCold-4                          5.824k ± 0%   5.824k ± 0%       ~ (p=1.000 n=6)
geomean                                     9.919k        9.919k       -0.01%
¹ all samples are equal

pkg: github.com/jongio/grut/internal/notify
                           │ bench-baseline.txt │         bench-current.txt         │
                           │       sec/op       │   sec/op     vs base              │
NotifyToastChurn-4                  326.2n ± 0%   322.1n ± 2%       ~ (p=0.061 n=6)
NotifyToastLifecycleCold-4          654.9n ± 3%   654.1n ± 2%       ~ (p=0.509 n=6)
NotifyInlineCap-4                   1.012µ ± 0%   1.013µ ± 1%       ~ (p=0.455 n=6)
geomean                             600.0n        597.5n       -0.42%

                           │ bench-baseline.txt │         bench-current.txt          │
                           │        B/op        │    B/op     vs base                │
NotifyToastChurn-4                   144.0 ± 0%   144.0 ± 0%       ~ (p=1.000 n=6) ¹
NotifyToastLifecycleCold-4           848.0 ± 0%   848.0 ± 0%       ~ (p=1.000 n=6) ¹
NotifyInlineCap-4                    104.0 ± 0%   104.0 ± 0%       ~ (p=1.000 n=6) ¹
geomean                              233.3        233.3       +0.00%
¹ all samples are equal

                           │ bench-baseline.txt │         bench-current.txt          │
                           │     allocs/op      │ allocs/op   vs base                │
NotifyToastChurn-4                   2.000 ± 0%   2.000 ± 0%       ~ (p=1.000 n=6) ¹
NotifyToastLifecycleCold-4           10.00 ± 0%   10.00 ± 0%       ~ (p=1.000 n=6) ¹
NotifyInlineCap-4                    2.000 ± 0%   2.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                              3.420        3.420       +0.00%
¹ all samples are equal

pkg: github.com/jongio/grut/internal/panels/filetree
                                               │ bench-baseline.txt │         bench-current.txt          │
                                               │       sec/op       │   sec/op     vs base               │
TreeRebuildVisible/flat_50_files-4                      259.2n ± 0%   183.8n ± 0%  -29.09% (p=0.002 n=6)
TreeRebuildVisible/nested_5_levels_461_nodes-4          2.865µ ± 2%   2.243µ ± 1%  -21.71% (p=0.002 n=6)
TreeRebuildVisible/large_1000_nodes-4                   5.342µ ± 3%   3.839µ ± 4%  -28.13% (p=0.002 n=6)
RenderLine/file_node-4                                  4.563µ ± 1%   4.577µ ± 0%        ~ (p=0.089 n=6)
RenderLine/dir_node_cursor-4                            5.983µ ± 1%   5.533µ ± 1%   -7.52% (p=0.002 n=6)
RenderLine/with_icons-4                                 4.667µ ± 1%   4.701µ ± 0%   +0.74% (p=0.015 n=6)
DetachedLazyLoad/50_entries-4                           146.9µ ± 0%   146.8µ ± 0%        ~ (p=0.589 n=6)
DetachedLazyLoad/23_root_entries-4                      65.75µ ± 0%   65.76µ ± 1%        ~ (p=0.937 n=6)
DisplayWidth/ascii-4                                    67.67n ± 0%   69.52n ± 1%   +2.74% (p=0.002 n=6)
DisplayWidth/mixed_unicode-4                            312.2n ± 1%   194.8n ± 1%  -37.61% (p=0.002 n=6)
TruncateToWidth/no_truncation-4                         21.43n ± 1%   21.93n ± 1%   +2.31% (p=0.002 n=6)
TruncateToWidth/needs_truncation-4                      829.6n ± 1%   803.3n ± 1%   -3.16% (p=0.002 n=6)
geomean                                                 1.870µ        1.659µ       -11.31%

                                               │ bench-baseline.txt │          bench-current.txt           │
                                               │        B/op        │     B/op      vs base                │
TreeRebuildVisible/flat_50_files-4                     0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
TreeRebuildVisible/nested_5_levels_461_nodes-4         0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
TreeRebuildVisible/large_1000_nodes-4                  0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
RenderLine/file_node-4                                 392.0 ± 0%       392.0 ± 0%       ~ (p=1.000 n=6) ¹
RenderLine/dir_node_cursor-4                           624.0 ± 0%       624.0 ± 0%       ~ (p=1.000 n=6) ¹
RenderLine/with_icons-4                                392.0 ± 0%       392.0 ± 0%       ~ (p=1.000 n=6) ¹
DetachedLazyLoad/50_entries-4                        34.12Ki ± 0%     34.12Ki ± 0%       ~ (p=0.329 n=6)
DetachedLazyLoad/23_root_entries-4                   14.77Ki ± 0%     14.77Ki ± 0%       ~ (p=0.383 n=6)
DisplayWidth/ascii-4                                   0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
DisplayWidth/mixed_unicode-4                           0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
TruncateToWidth/no_truncation-4                        0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
TruncateToWidth/needs_truncation-4                     544.0 ± 0%       544.0 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                           ²                 -0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                               │ bench-baseline.txt │         bench-current.txt          │
                                               │     allocs/op      │ allocs/op   vs base                │
TreeRebuildVisible/flat_50_files-4                     0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
TreeRebuildVisible/nested_5_levels_461_nodes-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
TreeRebuildVisible/large_1000_nodes-4                  0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
RenderLine/file_node-4                                 12.00 ± 0%     12.00 ± 0%       ~ (p=1.000 n=6) ¹
RenderLine/dir_node_cursor-4                           18.00 ± 0%     18.00 ± 0%       ~ (p=1.000 n=6) ¹
RenderLine/with_icons-4                                12.00 ± 0%     12.00 ± 0%       ~ (p=1.000 n=6) ¹
DetachedLazyLoad/50_entries-4                          363.0 ± 0%     363.0 ± 0%       ~ (p=1.000 n=6) ¹
DetachedLazyLoad/23_root_entries-4                     164.0 ± 0%     164.0 ± 0%       ~ (p=1.000 n=6) ¹
DisplayWidth/ascii-4                                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
DisplayWidth/mixed_unicode-4                           0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
TruncateToWidth/no_truncation-4                        0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
TruncateToWidth/needs_truncation-4                     3.000 ± 0%     3.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                           ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/jongio/grut/internal/panels/gitdiff
                                                   │ bench-baseline.txt │         bench-current.txt         │
                                                   │       sec/op       │   sec/op     vs base              │
InlineDiffRenderExact/10_lines-4                            47.20µ ± 5%   46.65µ ± 0%  -1.18% (p=0.002 n=6)
InlineDiffRenderExact/100_lines-4                           409.5µ ± 6%   404.0µ ± 0%  -1.33% (p=0.002 n=6)
InlineDiffRenderExact/1000_lines-4                          4.105m ± 5%   4.053m ± 1%  -1.27% (p=0.002 n=6)
InlineDiffRenderCold-4                                      410.3µ ± 9%   404.7µ ± 0%  -1.35% (p=0.002 n=6)
SideBySideDiffRenderExact/10_lines-4                        84.53µ ± 1%   84.62µ ± 1%       ~ (p=1.000 n=6)
SideBySideDiffRenderExact/100_lines-4                       757.5µ ± 1%   757.3µ ± 0%       ~ (p=0.589 n=6)
SideBySideDiffRenderExact/1000_lines-4                      7.606m ± 4%   7.576m ± 1%       ~ (p=0.132 n=6)
SideBySideDiffRenderCold-4                                  761.3µ ± 2%   755.6µ ± 0%  -0.75% (p=0.002 n=6)
PairDiffLines/20_lines_mixed-4                              300.0n ± 1%   300.1n ± 1%       ~ (p=0.900 n=6)
PairDiffLines/200_lines_mixed-4                             2.013µ ± 1%   2.004µ ± 1%       ~ (p=0.093 n=6)
RenderViewportWithStats/small-4                             5.447µ ± 0%   5.433µ ± 0%       ~ (p=0.145 n=6)
RenderViewportWithStats/large_scrolled-4                    5.734µ ± 1%   5.702µ ± 1%       ~ (p=0.102 n=6)
DiffWordsBoundedAllocations/50_tokens-4                     30.35µ ± 1%   29.52µ ± 0%  -2.75% (p=0.002 n=6)
DiffWordsBoundedAllocations/200_tokens-4                    453.0µ ± 1%   438.3µ ± 0%  -3.25% (p=0.002 n=6)
DiffWordsBoundedAllocations/400_tokens-4                    1.775m ± 1%   1.725m ± 0%  -2.85% (p=0.002 n=6)
DiffWordsBoundedAllocations/over_cap_tokens-4               4.942µ ± 2%   5.033µ ± 1%  +1.85% (p=0.024 n=6)
DiffWordsBoundedAllocations/one_mib_over_cap-4              4.962µ ± 3%   5.068µ ± 4%       ~ (p=0.093 n=6)
DiffWordsBoundedAllocations/one_mib_single_token-4          9.826m ± 0%   9.175m ± 0%  -6.63% (p=0.002 n=6)
geomean                                                     101.6µ        100.5µ       -1.07%

                                                   │ bench-baseline.txt │          bench-current.txt           │
                                                   │        B/op        │     B/op      vs base                │
InlineDiffRenderExact/10_lines-4                           4.016Ki ± 0%   4.016Ki ± 0%       ~ (p=1.000 n=6) ¹
InlineDiffRenderExact/100_lines-4                          33.47Ki ± 0%   33.47Ki ± 0%       ~ (p=1.000 n=6)
InlineDiffRenderExact/1000_lines-4                         334.7Ki ± 0%   334.7Ki ± 0%       ~ (p=1.000 n=6)
InlineDiffRenderCold-4                                     37.97Ki ± 0%   37.97Ki ± 0%       ~ (p=1.000 n=6) ¹
SideBySideDiffRenderExact/10_lines-4                       15.50Ki ± 0%   15.50Ki ± 0%       ~ (p=1.000 n=6)
SideBySideDiffRenderExact/100_lines-4                      144.3Ki ± 0%   144.3Ki ± 0%       ~ (p=0.965 n=6)
SideBySideDiffRenderExact/1000_lines-4                     1.410Mi ± 0%   1.410Mi ± 0%       ~ (p=0.180 n=6)
SideBySideDiffRenderCold-4                                 148.8Ki ± 0%   148.8Ki ± 0%       ~ (p=0.374 n=6)
PairDiffLines/20_lines_mixed-4                               416.0 ± 0%     416.0 ± 0%       ~ (p=1.000 n=6) ¹
PairDiffLines/200_lines_mixed-4                            3.469Ki ± 0%   3.469Ki ± 0%       ~ (p=1.000 n=6) ¹
RenderViewportWithStats/small-4                            6.368Ki ± 0%   6.368Ki ± 0%       ~ (p=1.000 n=6) ¹
RenderViewportWithStats/large_scrolled-4                   6.376Ki ± 0%   6.376Ki ± 0%       ~ (p=1.000 n=6) ¹
DiffWordsBoundedAllocations/50_tokens-4                    4.125Ki ± 0%   4.125Ki ± 0%       ~ (p=1.000 n=6) ¹
DiffWordsBoundedAllocations/200_tokens-4                   18.12Ki ± 0%   18.12Ki ± 0%       ~ (p=1.000 n=6) ¹
DiffWordsBoundedAllocations/400_tokens-4                   36.62Ki ± 0%   36.62Ki ± 0%       ~ (p=1.000 n=6) ¹
DiffWordsBoundedAllocations/over_cap_tokens-4              18.12Ki ± 0%   18.12Ki ± 0%       ~ (p=1.000 n=6) ¹
DiffWordsBoundedAllocations/one_mib_over_cap-4             18.12Ki ± 0%   18.12Ki ± 0%       ~ (p=1.000 n=6) ¹
DiffWordsBoundedAllocations/one_mib_single_token-4           896.0 ± 0%     896.0 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                    17.94Ki        17.94Ki       -0.00%
¹ all samples are equal

                                                   │ bench-baseline.txt │          bench-current.txt          │
                                                   │     allocs/op      │  allocs/op   vs base                │
InlineDiffRenderExact/10_lines-4                             122.0 ± 0%    122.0 ± 0%       ~ (p=1.000 n=6) ¹
InlineDiffRenderExact/100_lines-4                           1.096k ± 0%   1.096k ± 0%       ~ (p=1.000 n=6) ¹
InlineDiffRenderExact/1000_lines-4                          10.96k ± 0%   10.96k ± 0%       ~ (p=1.000 n=6) ¹
InlineDiffRenderCold-4                                      1.110k ± 0%   1.110k ± 0%       ~ (p=1.000 n=6) ¹
SideBySideDiffRenderExact/10_lines-4                         217.0 ± 0%    217.0 ± 0%       ~ (p=1.000 n=6) ¹
SideBySideDiffRenderExact/100_lines-4                       2.044k ± 0%   2.044k ± 0%       ~ (p=1.000 n=6) ¹
SideBySideDiffRenderExact/1000_lines-4                      20.44k ± 0%   20.44k ± 0%       ~ (p=1.000 n=6)
SideBySideDiffRenderCold-4                                  2.058k ± 0%   2.058k ± 0%       ~ (p=1.000 n=6) ¹
PairDiffLines/20_lines_mixed-4                               3.000 ± 0%    3.000 ± 0%       ~ (p=1.000 n=6) ¹
PairDiffLines/200_lines_mixed-4                              3.000 ± 0%    3.000 ± 0%       ~ (p=1.000 n=6) ¹
RenderViewportWithStats/small-4                              18.00 ± 0%    18.00 ± 0%       ~ (p=1.000 n=6) ¹
RenderViewportWithStats/large_scrolled-4                     19.00 ± 0%    19.00 ± 0%       ~ (p=1.000 n=6) ¹
DiffWordsBoundedAllocations/50_tokens-4                      8.000 ± 0%    8.000 ± 0%       ~ (p=1.000 n=6) ¹
DiffWordsBoundedAllocations/200_tokens-4                     12.00 ± 0%    12.00 ± 0%       ~ (p=1.000 n=6) ¹
DiffWordsBoundedAllocations/400_tokens-4                     14.00 ± 0%    14.00 ± 0%       ~ (p=1.000 n=6) ¹
DiffWordsBoundedAllocations/over_cap_tokens-4                6.000 ± 0%    6.000 ± 0%       ~ (p=1.000 n=6) ¹
DiffWordsBoundedAllocations/one_mib_over_cap-4               6.000 ± 0%    6.000 ± 0%       ~ (p=1.000 n=6) ¹
DiffWordsBoundedAllocations/one_mib_single_token-4           4.000 ± 0%    4.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                      80.02         80.02       +0.00%
¹ all samples are equal

Note

No significant regressions on linux-amd64 (threshold: 15%, same-runner comparison).

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: darwin-arm64

📊 Results vs main (same-runner) , click to expand

Note

No significant regressions on darwin-arm64 (threshold: 40%, same-runner comparison).

@jongio
jongio merged commit cdbfa49 into main Sep 10, 2026
9 checks passed
@jongio
jongio deleted the jongio-deps-update-2026-09-10 branch September 10, 2026 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dependency updates deps Dependency updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant