Skip to content

Agent picker: search by status, session and tab, not messages - #3

Merged
xheisenbugx merged 1 commit into
mainfrom
fix/agent-picker-search
Nov 10, 2026
Merged

xheisenbugx merged 1 commit into
mainfrom
fix/agent-picker-search

Conversation

@xheisenbugx

Copy link
Copy Markdown
Owner

Summary

Typing in the agent picker (contrib/ksesh-agents-fzf) also searched the agents' long messages. "public" matched letters scattered through a message ("…blocked from merging because…"). fzf then scrolled those rows sideways to show the match, which hid their session and tab, so they looked like stray wrapped lines.

  • ksesh agent list --ids now puts a tab after the status, session and tab title.
  • The picker searches only that part (--with-nth 3.. --nth 1) and shows tabs one column wide (--tabstop 1), so rows stay aligned. The search box hint now reads "filter by status, session or tab".

Stacked on #2. Merge that first; this PR's base will then move to main.

Test plan

  • go test ./seshcli/ passes, including a new test for the column split.
  • Against live agents, fzf --filter public matches only the 3 agents whose session is named public. Before, it matched 5, two of them through their messages.
  • Open the picker (super+a) and check that rows still line up and filtering by session or status works.

🤖 Generated with Claude Code

Typing in the agent picker matched letters scattered through agents'
long messages ("public" in "...blocked from merging because..."), and
fzf scrolled those rows sideways to show the match, hiding their session
and tab: they read as stray wrapped lines.

agent list --ids now ends the status, session and tab with a tab, and the
picker only searches that column (--nth 1), drawing tabs one column wide
so rows stay aligned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Benchmarks 📊

Note

No benchmark moved. Compared 96 measurements.

How this was measured

Before base.txt

After head.txt

linux/amd64 · AMD EPYC 7763 64-Core Processor

benchstat table
goos: linux
goarch: amd64
pkg: github.com/xheisenbugx/ksesh/lister
cpu: AMD EPYC 7763 64-Core Processor                
                                                   │   base.txt   │              head.txt              │
                                                   │    sec/op    │    sec/op     vs base              │
List/n=10-4                                          22.05µ ±  4%   22.30µ ±  3%       ~ (p=0.132 n=6)
List/n=100-4                                         87.89µ ±  2%   89.53µ ± 11%       ~ (p=0.093 n=6)
List/n=1000-4                                        722.9µ ±  3%   735.9µ ±  4%       ~ (p=0.310 n=6)
ListHideDuplicates/n=10-4                            28.31µ ±  1%   28.73µ ±  6%  +1.48% (p=0.015 n=6)
ListHideDuplicates/n=100-4                           141.6µ ±  3%   141.0µ ±  2%       ~ (p=0.699 n=6)
ListHideDuplicates/n=1000-4                          1.243m ±  2%   1.246m ±  5%       ~ (p=0.485 n=6)
ListBlacklist/n=10-4                                 42.47µ ±  2%   42.54µ ±  9%       ~ (p=0.699 n=6)
ListBlacklist/n=100-4                                148.4µ ±  1%   148.8µ ±  1%       ~ (p=0.394 n=6)
ListBlacklist/n=1000-4                               1.207m ±  1%   1.224m ± 16%       ~ (p=0.240 n=6)
ListShowWindows/n=10-4                               23.08µ ±  2%   22.93µ ±  5%       ~ (p=0.818 n=6)
ListShowWindows/n=100-4                              92.40µ ±  3%   92.36µ ±  3%       ~ (p=0.818 n=6)
ListShowWindows/n=1000-4                             777.0µ ±  2%   781.9µ ±  1%       ~ (p=0.310 n=6)
ApplyDedup/n=10-4                                    3.763µ ±  1%   3.741µ ±  1%       ~ (p=0.556 n=6)
ApplyDedup/n=100-4                                   46.76µ ±  1%   47.68µ ±  3%       ~ (p=0.065 n=6)
ApplyDedup/n=1000-4                                  513.1µ ±  1%   513.6µ ±  2%       ~ (p=1.000 n=6)
BlacklistFilter/n=10-4                               10.64µ ±  2%   10.83µ ±  4%       ~ (p=0.240 n=6)
BlacklistFilter/n=100-4                              28.89µ ±  2%   29.25µ ±  5%       ~ (p=0.132 n=6)
BlacklistFilter/n=1000-4                             213.9µ ±  1%   213.0µ ±  2%       ~ (p=1.000 n=6)
CachingListerApplyFilters/n=10/passthrough-4         9.118n ±  1%   9.133n ±  0%       ~ (p=0.859 n=6)
CachingListerApplyFilters/n=10/source-filter-4       391.5n ±  3%   395.3n ±  4%       ~ (p=0.372 n=6)
CachingListerApplyFilters/n=10/hide-attached-4       147.4n ±  2%   150.4n ±  2%       ~ (p=0.065 n=6)
CachingListerApplyFilters/n=10/hide-duplicates-4     3.720µ ±  2%   3.768µ ±  5%       ~ (p=0.093 n=6)
CachingListerApplyFilters/n=10/picker-defaults-4     4.143µ ±  0%   4.230µ ± 27%  +2.09% (p=0.002 n=6)
CachingListerApplyFilters/n=100/passthrough-4        9.123n ±  1%   9.144n ±  1%       ~ (p=0.310 n=6)
CachingListerApplyFilters/n=100/source-filter-4      3.127µ ±  4%   3.205µ ± 14%       ~ (p=0.310 n=6)
CachingListerApplyFilters/n=100/hide-attached-4      399.9n ± 67%   399.6n ±  8%       ~ (p=0.786 n=6)
CachingListerApplyFilters/n=100/hide-duplicates-4    47.35µ ±  1%   47.99µ ±  3%       ~ (p=0.167 n=6)
CachingListerApplyFilters/n=100/picker-defaults-4    50.43µ ±  1%   50.25µ ±  4%       ~ (p=0.485 n=6)
CachingListerApplyFilters/n=1000/passthrough-4       9.088n ±  1%   9.120n ±  0%       ~ (p=0.132 n=6)
CachingListerApplyFilters/n=1000/source-filter-4     33.05µ ±  1%   33.17µ ±  2%       ~ (p=0.394 n=6)
CachingListerApplyFilters/n=1000/hide-attached-4     3.814µ ±  5%   3.997µ ±  5%       ~ (p=0.180 n=6)
CachingListerApplyFilters/n=1000/hide-duplicates-4   508.8µ ±  1%   517.6µ ±  2%  +1.73% (p=0.026 n=6)
CachingListerApplyFilters/n=1000/picker-defaults-4   521.5µ ±  8%   525.9µ ±  3%       ~ (p=0.240 n=6)
FindKittySessionByBase/n=10-4                        558.4n ± 28%   566.0n ±  4%       ~ (p=0.394 n=6)
FindKittySessionByBase/n=100-4                       3.743µ ± 24%   3.799µ ±  3%       ~ (p=0.665 n=6)
FindKittySessionByBase/n=1000-4                      36.34µ ±  3%   35.86µ ±  5%       ~ (p=0.485 n=6)
geomean                                              15.08µ         15.21µ        +0.87%

                                                   │    base.txt    │               head.txt               │
                                                   │      B/op      │     B/op      vs base                │
List/n=10-4                                          10.28Ki ± 0%     10.28Ki ± 0%       ~ (p=0.141 n=6)
List/n=100-4                                         93.73Ki ± 0%     93.73Ki ± 0%       ~ (p=0.699 n=6)
List/n=1000-4                                        881.0Ki ± 0%     881.0Ki ± 0%       ~ (p=0.818 n=6)
ListHideDuplicates/n=10-4                            12.07Ki ± 0%     12.07Ki ± 0%       ~ (p=1.000 n=6)
ListHideDuplicates/n=100-4                           114.2Ki ± 0%     114.2Ki ± 0%       ~ (p=0.632 n=6)
ListHideDuplicates/n=1000-4                          1.059Mi ± 0%     1.059Mi ± 0%       ~ (p=0.589 n=6)
ListBlacklist/n=10-4                                 23.79Ki ± 0%     23.84Ki ± 0%       ~ (p=0.563 n=6)
ListBlacklist/n=100-4                                143.7Ki ± 0%     144.2Ki ± 0%       ~ (p=0.093 n=6)
ListBlacklist/n=1000-4                               1.247Mi ± 0%     1.249Mi ± 0%       ~ (p=0.065 n=6)
ListShowWindows/n=10-4                               10.30Ki ± 0%     10.30Ki ± 0%       ~ (p=1.000 n=6) ¹
ListShowWindows/n=100-4                              93.74Ki ± 0%     93.74Ki ± 0%       ~ (p=0.530 n=6)
ListShowWindows/n=1000-4                             881.0Ki ± 0%     881.0Ki ± 0%       ~ (p=0.920 n=6)
ApplyDedup/n=10-4                                    1.805Ki ± 0%     1.805Ki ± 0%       ~ (p=1.000 n=6) ¹
ApplyDedup/n=100-4                                   20.51Ki ± 0%     20.51Ki ± 0%       ~ (p=1.000 n=6) ¹
ApplyDedup/n=1000-4                                  203.4Ki ± 0%     203.4Ki ± 0%       ~ (p=1.000 n=6) ¹
BlacklistFilter/n=10-4                               9.449Ki ± 0%     9.456Ki ± 0%       ~ (p=0.260 n=6)
BlacklistFilter/n=100-4                              9.444Ki ± 0%     9.454Ki ± 0%       ~ (p=0.699 n=6)
BlacklistFilter/n=1000-4                             9.483Ki ± 1%     9.549Ki ± 1%  +0.70% (p=0.041 n=6)
CachingListerApplyFilters/n=10/passthrough-4           0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=10/source-filter-4         160.0 ± 0%       160.0 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=10/hide-attached-4         160.0 ± 0%       160.0 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=10/hide-duplicates-4     1.805Ki ± 0%     1.805Ki ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=10/picker-defaults-4     2.227Ki ± 0%     2.227Ki ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=100/passthrough-4          0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=100/source-filter-4      1.750Ki ± 0%     1.750Ki ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=100/hide-attached-4      1.750Ki ± 0%     1.750Ki ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=100/hide-duplicates-4    20.51Ki ± 0%     20.51Ki ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=100/picker-defaults-4    26.15Ki ± 0%     26.15Ki ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=1000/passthrough-4         0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=1000/source-filter-4     16.00Ki ± 0%     16.00Ki ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=1000/hide-attached-4     16.00Ki ± 0%     16.00Ki ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=1000/hide-duplicates-4   203.4Ki ± 0%     203.4Ki ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=1000/picker-defaults-4   239.4Ki ± 0%     239.4Ki ± 0%       ~ (p=0.455 n=6)
FindKittySessionByBase/n=10-4                          664.0 ± 0%       664.0 ± 0%       ~ (p=1.000 n=6) ¹
FindKittySessionByBase/n=100-4                       5.009Ki ± 0%     5.009Ki ± 0%       ~ (p=1.000 n=6) ¹
FindKittySessionByBase/n=1000-4                      49.44Ki ± 0%     49.44Ki ± 0%       ~ (p=1.000 n=6)
geomean                                                           ²                 +0.04%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                                   │   base.txt    │              head.txt               │
                                                   │   allocs/op   │  allocs/op   vs base                │
List/n=10-4                                           85.00 ± 0%      85.00 ± 0%       ~ (p=1.000 n=6) ¹
List/n=100-4                                          465.0 ± 0%      465.0 ± 0%       ~ (p=1.000 n=6) ¹
List/n=1000-4                                        3.962k ± 0%     3.962k ± 0%       ~ (p=1.000 n=6) ¹
ListHideDuplicates/n=10-4                             99.00 ± 0%      99.00 ± 0%       ~ (p=1.000 n=6) ¹
ListHideDuplicates/n=100-4                            507.0 ± 0%      507.0 ± 0%       ~ (p=1.000 n=6) ¹
ListHideDuplicates/n=1000-4                          4.055k ± 0%     4.055k ± 0%       ~ (p=1.000 n=6)
ListBlacklist/n=10-4                                  218.0 ± 0%      218.0 ± 0%       ~ (p=1.000 n=6) ¹
ListBlacklist/n=100-4                                 682.0 ± 0%      682.0 ± 0%       ~ (p=1.000 n=6) ¹
ListBlacklist/n=1000-4                               4.973k ± 0%     4.974k ± 0%       ~ (p=0.121 n=6)
ListShowWindows/n=10-4                                86.00 ± 0%      86.00 ± 0%       ~ (p=1.000 n=6) ¹
ListShowWindows/n=100-4                               466.0 ± 0%      466.0 ± 0%       ~ (p=1.000 n=6) ¹
ListShowWindows/n=1000-4                             3.963k ± 0%     3.963k ± 0%       ~ (p=1.000 n=6) ¹
ApplyDedup/n=10-4                                     14.00 ± 0%      14.00 ± 0%       ~ (p=1.000 n=6) ¹
ApplyDedup/n=100-4                                    42.00 ± 0%      42.00 ± 0%       ~ (p=1.000 n=6) ¹
ApplyDedup/n=1000-4                                   93.00 ± 0%      93.00 ± 0%       ~ (p=1.000 n=6) ¹
BlacklistFilter/n=10-4                                118.0 ± 0%      118.0 ± 0%       ~ (p=1.000 n=6) ¹
BlacklistFilter/n=100-4                               118.0 ± 0%      118.0 ± 0%       ~ (p=1.000 n=6) ¹
BlacklistFilter/n=1000-4                              118.0 ± 0%      118.0 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=10/passthrough-4          0.000 ± 0%      0.000 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=10/source-filter-4        1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=10/hide-attached-4        1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=10/hide-duplicates-4      14.00 ± 0%      14.00 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=10/picker-defaults-4      16.00 ± 0%      16.00 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=100/passthrough-4         0.000 ± 0%      0.000 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=100/source-filter-4       1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=100/hide-attached-4       1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=100/hide-duplicates-4     42.00 ± 0%      42.00 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=100/picker-defaults-4     50.00 ± 0%      50.00 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=1000/passthrough-4        0.000 ± 0%      0.000 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=1000/source-filter-4      1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=1000/hide-attached-4      1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=1000/hide-duplicates-4    93.00 ± 0%      93.00 ± 0%       ~ (p=1.000 n=6) ¹
CachingListerApplyFilters/n=1000/picker-defaults-4    95.00 ± 0%      95.00 ± 0%       ~ (p=1.000 n=6) ¹
FindKittySessionByBase/n=10-4                         6.000 ± 0%      6.000 ± 0%       ~ (p=1.000 n=6) ¹
FindKittySessionByBase/n=100-4                        40.00 ± 0%      40.00 ± 0%       ~ (p=1.000 n=6) ¹
FindKittySessionByBase/n=1000-4                       319.0 ± 0%      319.0 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                          ²                +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/xheisenbugx/ksesh/picker
                                                 │   base.txt   │              head.txt               │
                                                 │    sec/op    │    sec/op      vs base              │
Keystroke/n=10-4                                   86.88µ ±  4%    88.62µ ±  2%       ~ (p=0.093 n=6)
Keystroke/n=100-4                                  302.9µ ±  1%    306.9µ ±  4%  +1.34% (p=0.026 n=6)
Keystroke/n=1000-4                                 805.2µ ±  2%    800.8µ ±  4%       ~ (p=0.818 n=6)
FilterSessions/n=10/plain/empty-4                  1.003µ ±  6%    1.002µ ±  7%       ~ (p=0.970 n=6)
FilterSessions/n=10/plain/1-char-4                 5.328µ ±  6%    5.401µ ±  4%       ~ (p=0.699 n=6)
FilterSessions/n=10/plain/3-char-4                 5.387µ ±  2%    5.462µ ±  5%       ~ (p=0.180 n=6)
FilterSessions/n=10/plain/no-match-4               2.895µ ±  2%    2.911µ ±  3%       ~ (p=0.260 n=6)
FilterSessions/n=10/separator-aware/empty-4        990.9n ±  6%   1006.5n ±  6%       ~ (p=0.240 n=6)
FilterSessions/n=10/separator-aware/1-char-4       5.402µ ±  3%    5.440µ ±  5%       ~ (p=0.240 n=6)
FilterSessions/n=10/separator-aware/3-char-4       5.416µ ±  3%    5.461µ ±  3%       ~ (p=0.937 n=6)
FilterSessions/n=10/separator-aware/no-match-4     2.925µ ±  3%    2.926µ ± 50%       ~ (p=0.729 n=6)
FilterSessions/n=100/plain/empty-4                 10.77µ ± 17%    10.42µ ±  4%       ~ (p=0.310 n=6)
FilterSessions/n=100/plain/1-char-4                46.77µ ±  8%    47.02µ ±  2%       ~ (p=1.000 n=6)
FilterSessions/n=100/plain/3-char-4                46.39µ ±  7%    45.98µ ±  4%       ~ (p=0.180 n=6)
FilterSessions/n=100/plain/no-match-4              26.58µ ±  1%    26.55µ ±  0%       ~ (p=0.180 n=6)
FilterSessions/n=100/separator-aware/empty-4       10.60µ ± 53%    11.06µ ± 16%       ~ (p=0.818 n=6)
FilterSessions/n=100/separator-aware/1-char-4      46.86µ ±  7%    46.47µ ±  2%       ~ (p=0.310 n=6)
FilterSessions/n=100/separator-aware/3-char-4      46.52µ ±  6%    46.09µ ±  1%       ~ (p=0.180 n=6)
FilterSessions/n=100/separator-aware/no-match-4    26.65µ ±  1%    26.66µ ±  1%       ~ (p=0.818 n=6)
FilterSessions/n=1000/plain/empty-4                224.4µ ± 15%    214.3µ ± 13%       ~ (p=0.310 n=6)
FilterSessions/n=1000/plain/1-char-4               553.4µ ± 36%    554.5µ ± 10%       ~ (p=0.699 n=6)
FilterSessions/n=1000/plain/3-char-4               537.2µ ±  7%    536.8µ ±  2%       ~ (p=0.937 n=6)
FilterSessions/n=1000/plain/no-match-4             270.7µ ±  0%    271.8µ ±  0%       ~ (p=0.065 n=6)
FilterSessions/n=1000/separator-aware/empty-4      166.3µ ± 24%    171.9µ ±  7%       ~ (p=0.310 n=6)
FilterSessions/n=1000/separator-aware/1-char-4     547.0µ ±  8%    538.7µ ±  1%       ~ (p=0.394 n=6)
FilterSessions/n=1000/separator-aware/3-char-4     548.4µ ±  7%    538.5µ ±  2%       ~ (p=0.240 n=6)
FilterSessions/n=1000/separator-aware/no-match-4   271.6µ ±  0%    272.1µ ±  0%       ~ (p=0.132 n=6)
RankMatches/n=10/a-4                               408.1n ±  5%    400.9n ± 14%       ~ (p=0.853 n=6)
RankMatches/n=10/app-4                             396.9n ±  6%    391.2n ± 53%       ~ (p=0.310 n=6)
RankMatches/n=100/a-4                              2.844µ ±  7%    2.877µ ± 40%       ~ (p=0.368 n=6)
RankMatches/n=100/app-4                            2.967µ ±  5%    2.858µ ±  4%       ~ (p=0.485 n=6)
RankMatches/n=1000/a-4                             46.62µ ±  7%    45.05µ ±  6%       ~ (p=0.485 n=6)
RankMatches/n=1000/app-4                           46.40µ ± 20%    47.63µ ± 10%       ~ (p=0.937 n=6)
BuildItems/n=10/plain-4                            1.191µ ± 15%    1.208µ ±  7%       ~ (p=1.000 n=6)
BuildItems/n=10/separator-aware-4                  1.788µ ± 10%    1.807µ ±  6%       ~ (p=0.699 n=6)
BuildItems/n=10/icons-4                            1.764µ ±  7%    1.706µ ±  7%       ~ (p=0.102 n=6)
BuildItems/n=100/plain-4                           10.05µ ± 22%    10.31µ ± 15%       ~ (p=0.937 n=6)
BuildItems/n=100/separator-aware-4                 16.89µ ± 13%    16.53µ ±  5%       ~ (p=0.394 n=6)
BuildItems/n=100/icons-4                           17.40µ ±  6%    16.87µ ±  4%       ~ (p=0.132 n=6)
BuildItems/n=1000/plain-4                          152.5µ ± 13%    149.6µ ± 14%       ~ (p=0.132 n=6)
BuildItems/n=1000/separator-aware-4                216.8µ ± 17%    219.5µ ±  2%       ~ (p=0.937 n=6)
BuildItems/n=1000/icons-4                          208.7µ ± 10%    201.2µ ±  8%       ~ (p=0.065 n=6)
IconResolverWildcard/n=10/miss-4                   8.963µ ±  1%    9.008µ ±  1%       ~ (p=0.485 n=6)
IconResolverWildcard/n=10/hit-last-4               9.031µ ±  1%    9.096µ ±  1%       ~ (p=0.132 n=6)
IconResolverWildcard/n=100/miss-4                  91.39µ ±  6%    91.29µ ±  1%       ~ (p=0.699 n=6)
IconResolverWildcard/n=100/hit-last-4              91.60µ ±  1%    91.84µ ±  1%       ~ (p=1.000 n=6)
IconResolverWildcard/n=1000/miss-4                 934.4µ ±  2%    934.5µ ±  1%       ~ (p=0.699 n=6)
IconResolverWildcard/n=1000/hit-last-4             934.9µ ±  1%    933.9µ ±  1%       ~ (p=0.589 n=6)
FilterAliases/n=10/empty-4                         1.049µ ±  7%    1.035µ ±  3%       ~ (p=0.784 n=6)
FilterAliases/n=10/a-4                             1.020µ ±  9%    1.016µ ±  3%       ~ (p=1.000 n=6)
FilterAliases/n=10/al7-4                           1.044µ ±  9%    1.010µ ±  4%       ~ (p=0.180 n=6)
FilterAliases/n=100/empty-4                        6.070µ ±  5%    5.971µ ±  3%       ~ (p=0.240 n=6)
FilterAliases/n=100/a-4                            6.159µ ±  4%    6.001µ ±  3%       ~ (p=0.132 n=6)
FilterAliases/n=100/al7-4                          6.148µ ±  5%    6.102µ ±  4%       ~ (p=0.818 n=6)
FilterAliases/n=1000/empty-4                       83.40µ ± 21%    82.78µ ± 16%       ~ (p=0.589 n=6)
FilterAliases/n=1000/a-4                           82.19µ ± 21%    83.19µ ± 14%       ~ (p=0.937 n=6)
FilterAliases/n=1000/al7-4                         81.48µ ± 13%    80.12µ ± 11%       ~ (p=0.485 n=6)
View/n=10-4                                        38.25µ ±  1%    37.56µ ±  0%  -1.81% (p=0.002 n=6)
View/n=100-4                                       90.30µ ±  1%    88.66µ ±  1%  -1.81% (p=0.026 n=6)
View/n=1000-4                                      89.64µ ±  9%    88.51µ ±  3%       ~ (p=0.180 n=6)
geomean                                            24.10µ          24.00µ        -0.42%

                                                 │    base.txt     │               head.txt                │
                                                 │      B/op       │     B/op       vs base                │
Keystroke/n=10-4                                   20.78Ki ±  0%     20.78Ki ±  0%  +0.02% (p=0.022 n=6)
Keystroke/n=100-4                                  92.43Ki ±  0%     92.44Ki ±  0%       ~ (p=0.727 n=6)
Keystroke/n=1000-4                                 636.0Ki ±  0%     636.1Ki ±  0%       ~ (p=0.699 n=6)
FilterSessions/n=10/plain/empty-4                  4.750Ki ±  0%     4.750Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/plain/1-char-4                 6.945Ki ±  0%     6.945Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/plain/3-char-4                 7.094Ki ±  0%     7.094Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/plain/no-match-4                 248.0 ±  0%       248.0 ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/separator-aware/empty-4        4.750Ki ±  0%     4.750Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/separator-aware/1-char-4       6.945Ki ±  0%     6.945Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/separator-aware/3-char-4       7.094Ki ±  0%     7.094Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/separator-aware/no-match-4       248.0 ±  0%       248.0 ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/plain/empty-4                 48.00Ki ±  0%     48.00Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/plain/1-char-4                62.95Ki ±  0%     62.95Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/plain/3-char-4                64.37Ki ±  0%     64.37Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/plain/no-match-4                248.0 ±  0%       248.0 ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/separator-aware/empty-4       48.00Ki ±  0%     48.00Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/separator-aware/1-char-4      62.95Ki ±  0%     62.95Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/separator-aware/3-char-4      64.37Ki ±  0%     64.37Ki ±  0%       ~ (p=1.000 n=6)
FilterSessions/n=100/separator-aware/no-match-4      248.0 ±  0%       248.0 ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=1000/plain/empty-4                424.0Ki ±  0%     424.0Ki ±  0%       ~ (p=0.641 n=6)
FilterSessions/n=1000/plain/1-char-4               575.3Ki ±  0%     575.3Ki ±  0%       ~ (p=1.000 n=6)
FilterSessions/n=1000/plain/3-char-4               589.4Ki ±  0%     589.4Ki ±  0%       ~ (p=1.000 n=6)
FilterSessions/n=1000/plain/no-match-4               248.0 ±  0%       248.0 ±  0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=1000/separator-aware/empty-4      424.0Ki ±  0%     424.0Ki ±  0%       ~ (p=0.470 n=6)
FilterSessions/n=1000/separator-aware/1-char-4     575.3Ki ±  0%     575.3Ki ±  0%       ~ (p=0.567 n=6)
FilterSessions/n=1000/separator-aware/3-char-4     589.4Ki ±  0%     589.4Ki ±  0%       ~ (p=1.000 n=6)
FilterSessions/n=1000/separator-aware/no-match-4     248.0 ±  0%       248.0 ±  0%       ~ (p=1.000 n=6) ¹
RankMatches/n=10/a-4                                 776.0 ±  0%       776.0 ±  0%       ~ (p=1.000 n=6) ¹
RankMatches/n=10/app-4                               776.0 ±  0%       776.0 ±  0%       ~ (p=1.000 n=6) ¹
RankMatches/n=100/a-4                              6.133Ki ±  0%     6.133Ki ±  0%       ~ (p=1.000 n=6) ¹
RankMatches/n=100/app-4                            6.133Ki ±  0%     6.133Ki ±  0%       ~ (p=1.000 n=6) ¹
RankMatches/n=1000/a-4                             64.13Ki ±  0%     64.13Ki ±  0%       ~ (p=1.000 n=6) ¹
RankMatches/n=1000/app-4                           64.13Ki ±  0%     64.13Ki ±  0%       ~ (p=1.000 n=6) ¹
BuildItems/n=10/plain-4                            4.000Ki ±  0%     4.000Ki ±  0%       ~ (p=1.000 n=6) ¹
BuildItems/n=10/separator-aware-4                  4.562Ki ±  0%     4.562Ki ±  0%       ~ (p=1.000 n=6) ¹
BuildItems/n=10/icons-4                            4.000Ki ±  0%     4.000Ki ±  0%       ~ (p=1.000 n=6) ¹
BuildItems/n=100/plain-4                           40.00Ki ±  0%     40.00Ki ±  0%       ~ (p=1.000 n=6) ¹
BuildItems/n=100/separator-aware-4                 45.62Ki ±  0%     45.62Ki ±  0%       ~ (p=1.000 n=6) ¹
BuildItems/n=100/icons-4                           40.00Ki ±  0%     40.00Ki ±  0%       ~ (p=1.000 n=6) ¹
BuildItems/n=1000/plain-4                          392.0Ki ±  0%     392.0Ki ±  0%       ~ (p=1.000 n=6) ¹
BuildItems/n=1000/separator-aware-4                449.7Ki ±  0%     449.7Ki ±  0%       ~ (p=1.000 n=6)
BuildItems/n=1000/icons-4                          392.0Ki ±  0%     392.0Ki ±  0%       ~ (p=0.455 n=6)
IconResolverWildcard/n=10/miss-4                     0.000 ±  0%       0.000 ±  0%       ~ (p=1.000 n=6) ¹
IconResolverWildcard/n=10/hit-last-4                 0.000 ±  0%       0.000 ±  0%       ~ (p=1.000 n=6) ¹
IconResolverWildcard/n=100/miss-4                    0.000 ±   ?       0.000 ±   ?       ~ (p=1.000 n=6)
IconResolverWildcard/n=100/hit-last-4                0.000 ±  0%       0.000 ±  0%       ~ (p=1.000 n=6) ¹
IconResolverWildcard/n=1000/miss-4                   10.00 ± 10%       10.00 ± 10%       ~ (p=1.000 n=6)
IconResolverWildcard/n=1000/hit-last-4               9.000 ±  0%       9.000 ±  0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=10/empty-4                         2.625Ki ±  0%     2.625Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=10/a-4                             2.625Ki ±  0%     2.625Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=10/al7-4                           2.625Ki ±  0%     2.625Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=100/empty-4                        14.87Ki ±  0%     14.87Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=100/a-4                            14.87Ki ±  0%     14.87Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=100/al7-4                          14.87Ki ±  0%     14.87Ki ±  0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=1000/empty-4                       141.2Ki ±  0%     141.2Ki ±  0%       ~ (p=1.000 n=6)
FilterAliases/n=1000/a-4                           141.2Ki ±  0%     141.2Ki ±  0%       ~ (p=1.000 n=6)
FilterAliases/n=1000/al7-4                         141.2Ki ±  0%     141.2Ki ±  0%       ~ (p=1.000 n=6)
View/n=10-4                                        2.625Ki ±  0%     2.625Ki ±  0%       ~ (p=1.000 n=6) ¹
View/n=100-4                                       6.040Ki ±  0%     6.040Ki ±  0%       ~ (p=1.000 n=6)
View/n=1000-4                                      4.556Ki ±  0%     4.556Ki ±  0%       ~ (p=1.000 n=6) ¹
geomean                                                          ²                  +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                                 │   base.txt    │              head.txt               │
                                                 │   allocs/op   │  allocs/op   vs base                │
Keystroke/n=10-4                                    179.0 ± 0%      179.0 ± 0%       ~ (p=1.000 n=6) ¹
Keystroke/n=100-4                                   634.0 ± 0%      634.0 ± 0%       ~ (p=1.000 n=6) ¹
Keystroke/n=1000-4                                 1.419k ± 0%     1.419k ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/plain/empty-4                   1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/plain/1-char-4                  28.00 ± 0%      28.00 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/plain/3-char-4                  28.00 ± 0%      28.00 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/plain/no-match-4                8.000 ± 0%      8.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/separator-aware/empty-4         1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/separator-aware/1-char-4        28.00 ± 0%      28.00 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/separator-aware/3-char-4        28.00 ± 0%      28.00 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=10/separator-aware/no-match-4      8.000 ± 0%      8.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/plain/empty-4                  1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/plain/1-char-4                 112.0 ± 0%      112.0 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/plain/3-char-4                 112.0 ± 0%      112.0 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/plain/no-match-4               8.000 ± 0%      8.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/separator-aware/empty-4        1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/separator-aware/1-char-4       112.0 ± 0%      112.0 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/separator-aware/3-char-4       112.0 ± 0%      112.0 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=100/separator-aware/no-match-4     8.000 ± 0%      8.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=1000/plain/empty-4                 1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=1000/plain/1-char-4                925.0 ± 0%      925.0 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=1000/plain/3-char-4                925.0 ± 0%      925.0 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=1000/plain/no-match-4              8.000 ± 0%      8.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=1000/separator-aware/empty-4       1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=1000/separator-aware/1-char-4      925.0 ± 0%      925.0 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=1000/separator-aware/3-char-4      925.0 ± 0%      925.0 ± 0%       ~ (p=1.000 n=6) ¹
FilterSessions/n=1000/separator-aware/no-match-4    8.000 ± 0%      8.000 ± 0%       ~ (p=1.000 n=6) ¹
RankMatches/n=10/a-4                                4.000 ± 0%      4.000 ± 0%       ~ (p=1.000 n=6) ¹
RankMatches/n=10/app-4                              4.000 ± 0%      4.000 ± 0%       ~ (p=1.000 n=6) ¹
RankMatches/n=100/a-4                               4.000 ± 0%      4.000 ± 0%       ~ (p=1.000 n=6) ¹
RankMatches/n=100/app-4                             4.000 ± 0%      4.000 ± 0%       ~ (p=1.000 n=6) ¹
RankMatches/n=1000/a-4                              4.000 ± 0%      4.000 ± 0%       ~ (p=1.000 n=6) ¹
RankMatches/n=1000/app-4                            4.000 ± 0%      4.000 ± 0%       ~ (p=1.000 n=6) ¹
BuildItems/n=10/plain-4                             1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
BuildItems/n=10/separator-aware-4                   21.00 ± 0%      21.00 ± 0%       ~ (p=1.000 n=6) ¹
BuildItems/n=10/icons-4                             1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
BuildItems/n=100/plain-4                            1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
BuildItems/n=100/separator-aware-4                  201.0 ± 0%      201.0 ± 0%       ~ (p=1.000 n=6) ¹
BuildItems/n=100/icons-4                            1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
BuildItems/n=1000/plain-4                           1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
BuildItems/n=1000/separator-aware-4                2.001k ± 0%     2.001k ± 0%       ~ (p=1.000 n=6) ¹
BuildItems/n=1000/icons-4                           1.000 ± 0%      1.000 ± 0%       ~ (p=1.000 n=6) ¹
IconResolverWildcard/n=10/miss-4                    0.000 ± 0%      0.000 ± 0%       ~ (p=1.000 n=6) ¹
IconResolverWildcard/n=10/hit-last-4                0.000 ± 0%      0.000 ± 0%       ~ (p=1.000 n=6) ¹
IconResolverWildcard/n=100/miss-4                   0.000 ± 0%      0.000 ± 0%       ~ (p=1.000 n=6) ¹
IconResolverWildcard/n=100/hit-last-4               0.000 ± 0%      0.000 ± 0%       ~ (p=1.000 n=6) ¹
IconResolverWildcard/n=1000/miss-4                  0.000 ± 0%      0.000 ± 0%       ~ (p=1.000 n=6) ¹
IconResolverWildcard/n=1000/hit-last-4              0.000 ± 0%      0.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=10/empty-4                          3.000 ± 0%      3.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=10/a-4                              3.000 ± 0%      3.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=10/al7-4                            3.000 ± 0%      3.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=100/empty-4                         7.000 ± 0%      7.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=100/a-4                             7.000 ± 0%      7.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=100/al7-4                           7.000 ± 0%      7.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=1000/empty-4                        7.000 ± 0%      7.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=1000/a-4                            7.000 ± 0%      7.000 ± 0%       ~ (p=1.000 n=6) ¹
FilterAliases/n=1000/al7-4                          7.000 ± 0%      7.000 ± 0%       ~ (p=1.000 n=6) ¹
View/n=10-4                                         73.00 ± 0%      73.00 ± 0%       ~ (p=1.000 n=6) ¹
View/n=100-4                                        159.0 ± 0%      159.0 ± 0%       ~ (p=1.000 n=6) ¹
View/n=1000-4                                       158.0 ± 0%      158.0 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                        ²                +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

Informational: this job never fails on a regression. See CONTRIBUTING.md ("Benchmarks").

@xheisenbugx
xheisenbugx changed the base branch from feat/agent-status to main November 10, 2026 19:40
@xheisenbugx
xheisenbugx merged commit 22dfcda into main Nov 10, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

⌂ 换网址