summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/coverage.html30
-rw-r--r--docs/coverage.out1246
-rw-r--r--internal/version.go2
3 files changed, 639 insertions, 639 deletions
diff --git a/docs/coverage.html b/docs/coverage.html
index 7cda0d1..36775ce 100644
--- a/docs/coverage.html
+++ b/docs/coverage.html
@@ -7269,9 +7269,9 @@ import (
"golang.org/x/sys/unix"
)
-func tryLockFile(fd uintptr) error <span class="cov10" title="214">{
- if err := unix.Flock(int(fd), unix.LOCK_EX|unix.LOCK_NB); err != nil </span><span class="cov9" title="137">{
- if errors.Is(err, unix.EWOULDBLOCK) </span><span class="cov9" title="137">{
+func tryLockFile(fd uintptr) error <span class="cov10" title="213">{
+ if err := unix.Flock(int(fd), unix.LOCK_EX|unix.LOCK_NB); err != nil </span><span class="cov9" title="136">{
+ if errors.Is(err, unix.EWOULDBLOCK) </span><span class="cov9" title="136">{
return errLockWouldBlock
}</span>
<span class="cov0" title="0">return err</span>
@@ -7315,14 +7315,14 @@ var windowSeconds int64 = int64(defaultWindow.Seconds())
var errLockWouldBlock = errors.New("stats: lock would block")
// SetWindow sets the sliding window used for pruning and aggregation.
-func SetWindow(d time.Duration) <span class="cov5" title="83">{
+func SetWindow(d time.Duration) <span class="cov4" title="83">{
if d &lt; time.Second </span><span class="cov0" title="0">{
d = time.Second
}</span>
- <span class="cov5" title="83">if d &gt; 24*time.Hour </span><span class="cov0" title="0">{
+ <span class="cov4" title="83">if d &gt; 24*time.Hour </span><span class="cov0" title="0">{
d = 24 * time.Hour
}</span>
- <span class="cov5" title="83">atomic.StoreInt64(&amp;windowSeconds, int64(d.Seconds()))</span>
+ <span class="cov4" title="83">atomic.StoreInt64(&amp;windowSeconds, int64(d.Seconds()))</span>
}
// Window returns the current sliding window.
@@ -7386,7 +7386,7 @@ func Update(ctx context.Context, provider, model string, sentBytes, recvBytes in
if b, rerr := os.ReadFile(path); rerr == nil </span><span class="cov4" title="74">{
_ = json.Unmarshal(b, &amp;sf)
}</span>
- <span class="cov4" title="77">if sf.Version != fileVersion </span><span class="cov2" title="3">{
+ <span class="cov4" title="77">if sf.Version != fileVersion </span><span class="cov1" title="3">{
sf = File{Version: fileVersion}
}</span>
<span class="cov4" title="77">now := time.Now()
@@ -7439,18 +7439,18 @@ func Update(ctx context.Context, provider, model string, sentBytes, recvBytes in
func acquireFileLock(ctx context.Context, f *os.File) (func() error, error) <span class="cov4" title="77">{
fd := f.Fd()
- for </span><span class="cov5" title="214">{
+ for </span><span class="cov5" title="213">{
err := tryLockFile(fd)
if err == nil </span><span class="cov4" title="77">{
return func() error </span><span class="cov4" title="77">{ return unlockFile(fd) }</span>, nil
}
- <span class="cov5" title="137">if errors.Is(err, errLockWouldBlock) </span><span class="cov5" title="137">{
+ <span class="cov5" title="136">if errors.Is(err, errLockWouldBlock) </span><span class="cov5" title="136">{
select </span>{
case &lt;-ctx.Done():<span class="cov0" title="0">
return nil, ctx.Err()</span>
- case &lt;-time.After(5 * time.Millisecond):<span class="cov5" title="137"></span>
+ case &lt;-time.After(5 * time.Millisecond):<span class="cov5" title="136"></span>
}
- <span class="cov5" title="137">continue</span>
+ <span class="cov5" title="136">continue</span>
}
<span class="cov0" title="0">return nil, err</span>
}
@@ -7482,18 +7482,18 @@ func TakeSnapshot() (Snapshot, error) <span class="cov4" title="70">{
}</span>
<span class="cov4" title="70">cutoff := time.Now().Add(-win)
snap := Snapshot{Providers: make(map[string]ProviderEntry), Window: win}
- for _, ev := range sf.Events </span><span class="cov10" title="18479">{
+ for _, ev := range sf.Events </span><span class="cov10" title="22097">{
if ev.TS.Before(cutoff) </span><span class="cov0" title="0">{
continue</span>
}
- <span class="cov10" title="18479">snap.Global.Reqs++
+ <span class="cov10" title="22097">snap.Global.Reqs++
snap.Global.Sent += ev.Sent
snap.Global.Recv += ev.Recv
pe := snap.Providers[ev.Provider]
if pe.Models == nil </span><span class="cov6" title="472">{
pe.Models = make(map[string]Counters)
}</span>
- <span class="cov10" title="18479">pe.Totals.Reqs++
+ <span class="cov10" title="22097">pe.Totals.Reqs++
pe.Totals.Sent += ev.Sent
pe.Totals.Recv += ev.Recv
mc := pe.Models[ev.Model]
@@ -7513,7 +7513,7 @@ func TakeSnapshot() (Snapshot, error) <span class="cov4" title="70">{
// CacheDir resolves the cache directory for stats.
func CacheDir() (string, error) <span class="cov5" title="148">{
- if x := os.Getenv("XDG_CACHE_HOME"); stringsTrim(x) != "" </span><span class="cov4" title="27">{
+ if x := os.Getenv("XDG_CACHE_HOME"); stringsTrim(x) != "" </span><span class="cov3" title="27">{
return filepath.Join(x, "hexai"), nil
}</span>
<span class="cov5" title="121">home, err := os.UserHomeDir()
diff --git a/docs/coverage.out b/docs/coverage.out
index 3410034..d4b2925 100644
--- a/docs/coverage.out
+++ b/docs/coverage.out
@@ -2305,14 +2305,12 @@ codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.30,81.141 2 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:81.141,82.12 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.3,84.15 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:86.2,86.13 1 0
-codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:12.13,25.107 9 0
-codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:25.107,28.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
-codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
-codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 1
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 1
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:12.13,25.107 9 0
@@ -2653,30 +2651,30 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:1048.61,1051.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:1053.2,1053.10 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:1053.10,1055.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:1056.2,1056.13 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.14 2 3
-codeberg.org/snonux/hexai/internal/editor/editor.go:14.14,16.3 1 1
-codeberg.org/snonux/hexai/internal/editor/editor.go:17.2,17.14 1 3
+codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.14 2 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:14.14,16.3 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:17.2,17.14 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:17.14,19.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:20.2,20.16 1 3
+codeberg.org/snonux/hexai/internal/editor/editor.go:20.2,20.16 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:25.49,31.2 5 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.16 2 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.16 2 0
codeberg.org/snonux/hexai/internal/editor/editor.go:38.16,40.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:42.2,44.16 3 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:42.2,44.16 3 0
codeberg.org/snonux/hexai/internal/editor/editor.go:44.16,46.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:47.2,48.15 2 1
-codeberg.org/snonux/hexai/internal/editor/editor.go:48.15,48.38 1 1
-codeberg.org/snonux/hexai/internal/editor/editor.go:49.2,49.22 1 1
-codeberg.org/snonux/hexai/internal/editor/editor.go:49.22,50.45 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:47.2,48.15 2 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:48.15,48.38 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:49.2,49.22 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:49.22,50.45 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:50.45,53.4 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:55.2,55.33 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:55.2,55.33 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:55.33,58.3 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:59.2,59.34 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:59.2,59.34 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:59.34,61.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:62.2,62.44 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:62.2,62.44 1 0
codeberg.org/snonux/hexai/internal/editor/editor.go:62.44,64.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:65.2,66.16 2 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:65.2,66.16 2 0
codeberg.org/snonux/hexai/internal/editor/editor.go:66.16,68.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:69.2,69.42 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:69.2,69.42 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:27.101,28.18 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:28.18,30.3 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:32.2,32.90 1 0
@@ -4617,8 +4615,8 @@ codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.104,24.3 1 0
-codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 1
-codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 1
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:13.13,17.18 4 0
+codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:12.13,25.107 9 0
@@ -4959,30 +4957,30 @@ codeberg.org/snonux/hexai/internal/appconfig/config.go:1048.61,1051.3 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:1053.2,1053.10 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:1053.10,1055.3 1 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:1056.2,1056.13 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.14 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:14.14,16.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:17.2,17.14 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:12.32,14.14 2 3
+codeberg.org/snonux/hexai/internal/editor/editor.go:14.14,16.3 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:17.2,17.14 1 3
codeberg.org/snonux/hexai/internal/editor/editor.go:17.14,19.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:20.2,20.16 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:20.2,20.16 1 3
codeberg.org/snonux/hexai/internal/editor/editor.go:25.49,31.2 5 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.16 2 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:36.54,38.16 2 1
codeberg.org/snonux/hexai/internal/editor/editor.go:38.16,40.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:42.2,44.16 3 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:42.2,44.16 3 1
codeberg.org/snonux/hexai/internal/editor/editor.go:44.16,46.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:47.2,48.15 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:48.15,48.38 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:49.2,49.22 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:49.22,50.45 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:47.2,48.15 2 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:48.15,48.38 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:49.2,49.22 1 1
+codeberg.org/snonux/hexai/internal/editor/editor.go:49.22,50.45 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:50.45,53.4 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:55.2,55.33 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:55.2,55.33 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:55.33,58.3 2 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:59.2,59.34 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:59.2,59.34 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:59.34,61.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:62.2,62.44 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:62.2,62.44 1 1
codeberg.org/snonux/hexai/internal/editor/editor.go:62.44,64.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:65.2,66.16 2 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:65.2,66.16 2 1
codeberg.org/snonux/hexai/internal/editor/editor.go:66.16,68.3 1 0
-codeberg.org/snonux/hexai/internal/editor/editor.go:69.2,69.42 1 0
+codeberg.org/snonux/hexai/internal/editor/editor.go:69.2,69.42 1 1
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:27.101,28.18 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:28.18,30.3 1 0
codeberg.org/snonux/hexai/internal/hexaiaction/cmdentry.go:32.2,32.90 1 0
@@ -6919,6 +6917,8 @@ codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.30,81.141 2 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:81.141,82.12 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.3,84.15 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:86.2,86.13 1 0
+codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:12.13,25.107 9 0
+codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:25.107,28.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -11343,11 +11343,11 @@ codeberg.org/snonux/hexai/internal/stats/stats.go:191.2,192.14 2 7
codeberg.org/snonux/hexai/internal/stats/stats.go:192.14,194.3 1 0
codeberg.org/snonux/hexai/internal/stats/stats.go:194.8,196.3 1 7
codeberg.org/snonux/hexai/internal/stats/stats.go:197.2,199.31 3 7
-codeberg.org/snonux/hexai/internal/stats/stats.go:199.31,200.27 1 1743
+codeberg.org/snonux/hexai/internal/stats/stats.go:199.31,200.27 1 2121
codeberg.org/snonux/hexai/internal/stats/stats.go:200.27,201.12 1 0
-codeberg.org/snonux/hexai/internal/stats/stats.go:203.3,207.23 5 1743
+codeberg.org/snonux/hexai/internal/stats/stats.go:203.3,207.23 5 2121
codeberg.org/snonux/hexai/internal/stats/stats.go:207.23,209.4 1 49
-codeberg.org/snonux/hexai/internal/stats/stats.go:210.3,218.35 9 1743
+codeberg.org/snonux/hexai/internal/stats/stats.go:210.3,218.35 9 2121
codeberg.org/snonux/hexai/internal/stats/stats.go:220.2,221.15 2 7
codeberg.org/snonux/hexai/internal/stats/stats.go:221.15,223.3 1 0
codeberg.org/snonux/hexai/internal/stats/stats.go:224.2,225.18 2 7
@@ -20567,11 +20567,11 @@ codeberg.org/snonux/hexai/internal/stats/stats.go:191.2,192.14 2 18
codeberg.org/snonux/hexai/internal/stats/stats.go:192.14,194.3 1 0
codeberg.org/snonux/hexai/internal/stats/stats.go:194.8,196.3 1 18
codeberg.org/snonux/hexai/internal/stats/stats.go:197.2,199.31 3 18
-codeberg.org/snonux/hexai/internal/stats/stats.go:199.31,200.27 1 4707
+codeberg.org/snonux/hexai/internal/stats/stats.go:199.31,200.27 1 5679
codeberg.org/snonux/hexai/internal/stats/stats.go:200.27,201.12 1 0
-codeberg.org/snonux/hexai/internal/stats/stats.go:203.3,207.23 5 4707
+codeberg.org/snonux/hexai/internal/stats/stats.go:203.3,207.23 5 5679
codeberg.org/snonux/hexai/internal/stats/stats.go:207.23,209.4 1 126
-codeberg.org/snonux/hexai/internal/stats/stats.go:210.3,218.35 9 4707
+codeberg.org/snonux/hexai/internal/stats/stats.go:210.3,218.35 9 5679
codeberg.org/snonux/hexai/internal/stats/stats.go:220.2,221.15 2 18
codeberg.org/snonux/hexai/internal/stats/stats.go:221.15,223.3 1 0
codeberg.org/snonux/hexai/internal/stats/stats.go:224.2,225.18 2 18
@@ -25203,15 +25203,15 @@ codeberg.org/snonux/hexai/internal/stats/stats.go:257.40,259.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:4.33,6.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
-codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
-codeberg.org/snonux/hexai/internal/textutil/human.go:7.33,8.14 1 8
-codeberg.org/snonux/hexai/internal/textutil/human.go:8.14,10.3 1 2
-codeberg.org/snonux/hexai/internal/textutil/human.go:11.2,15.37 5 6
-codeberg.org/snonux/hexai/internal/textutil/human.go:15.37,18.3 2 6
-codeberg.org/snonux/hexai/internal/textutil/human.go:19.2,21.41 2 6
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 1
+codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 1
+codeberg.org/snonux/hexai/internal/textutil/human.go:7.33,8.14 1 0
+codeberg.org/snonux/hexai/internal/textutil/human.go:8.14,10.3 1 0
+codeberg.org/snonux/hexai/internal/textutil/human.go:11.2,15.37 5 0
+codeberg.org/snonux/hexai/internal/textutil/human.go:15.37,18.3 2 0
+codeberg.org/snonux/hexai/internal/textutil/human.go:19.2,21.41 2 0
codeberg.org/snonux/hexai/internal/textutil/human.go:21.41,23.3 1 0
-codeberg.org/snonux/hexai/internal/textutil/human.go:24.2,24.10 1 6
+codeberg.org/snonux/hexai/internal/textutil/human.go:24.2,24.10 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.31 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.31,9.3 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.2,11.25 2 0
@@ -25273,46 +25273,46 @@ codeberg.org/snonux/hexai/internal/tmux/status.go:39.2,40.13 2 0
codeberg.org/snonux/hexai/internal/tmux/status.go:40.13,42.3 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:44.2,44.69 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:48.36,48.95 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:52.98,54.2 1 1
-codeberg.org/snonux/hexai/internal/tmux/status.go:59.115,68.2 3 1
-codeberg.org/snonux/hexai/internal/tmux/status.go:74.194,79.90 4 2
-codeberg.org/snonux/hexai/internal/tmux/status.go:79.90,81.3 1 1
-codeberg.org/snonux/hexai/internal/tmux/status.go:82.2,84.34 2 1
-codeberg.org/snonux/hexai/internal/tmux/status.go:84.34,85.50 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:52.98,54.2 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:59.115,68.2 3 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:74.194,79.90 4 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:79.90,81.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:82.2,84.34 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:84.34,85.50 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:85.50,87.4 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:88.3,88.21 1 1
-codeberg.org/snonux/hexai/internal/tmux/status.go:88.21,90.4 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:88.3,88.21 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:88.21,90.4 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:92.2,92.20 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:95.42,96.12 1 2
+codeberg.org/snonux/hexai/internal/tmux/status.go:95.42,96.12 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:96.12,98.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:99.2,100.18 2 2
+codeberg.org/snonux/hexai/internal/tmux/status.go:99.2,100.18 2 0
codeberg.org/snonux/hexai/internal/tmux/status.go:100.18,102.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:103.2,103.16 1 2
+codeberg.org/snonux/hexai/internal/tmux/status.go:103.2,103.16 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:103.16,105.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:106.2,106.33 1 2
-codeberg.org/snonux/hexai/internal/tmux/status.go:110.27,112.13 2 2
-codeberg.org/snonux/hexai/internal/tmux/status.go:112.13,114.3 1 1
-codeberg.org/snonux/hexai/internal/tmux/status.go:115.2,115.11 1 1
-codeberg.org/snonux/hexai/internal/tmux/status.go:116.32,117.14 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:106.2,106.33 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:110.27,112.13 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:112.13,114.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:115.2,115.11 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:116.32,117.14 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:118.10,119.15 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:124.25,126.13 2 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:124.25,126.13 2 0
codeberg.org/snonux/hexai/internal/tmux/status.go:126.13,128.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:129.2,130.26 2 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:129.2,130.26 2 0
codeberg.org/snonux/hexai/internal/tmux/status.go:130.26,132.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:133.2,133.10 1 1
-codeberg.org/snonux/hexai/internal/tmux/status.go:136.45,137.12 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:133.2,133.10 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:136.45,137.12 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:137.12,139.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:140.2,140.17 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:140.2,140.17 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:140.17,142.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:143.2,143.12 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:143.2,143.12 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:143.12,145.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:146.2,146.24 1 1
-codeberg.org/snonux/hexai/internal/tmux/status.go:149.35,152.77 3 5
+codeberg.org/snonux/hexai/internal/tmux/status.go:146.2,146.24 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:149.35,152.77 3 0
codeberg.org/snonux/hexai/internal/tmux/status.go:152.77,154.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:155.2,155.85 1 5
+codeberg.org/snonux/hexai/internal/tmux/status.go:155.2,155.85 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:155.85,157.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:158.2,158.27 1 5
-codeberg.org/snonux/hexai/internal/tmux/status.go:158.27,160.3 1 5
+codeberg.org/snonux/hexai/internal/tmux/status.go:158.2,158.27 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:158.27,160.3 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:161.2,161.15 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:166.58,168.2 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:172.34,180.26 6 0
@@ -25342,31 +25342,31 @@ codeberg.org/snonux/hexai/internal/tmux/status.go:229.11,231.3 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:233.2,234.14 2 0
codeberg.org/snonux/hexai/internal/tmux/status.go:234.14,236.3 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:237.2,238.48 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 2
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:19.23,19.72 2 4
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:22.23,22.76 1 3
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:33.52,34.20 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:19.23,19.72 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:22.23,22.76 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:33.52,34.20 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:34.20,36.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:37.2,38.19 2 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.19,40.3 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:37.2,38.19 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.19,40.3 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:40.8,42.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:43.2,43.45 1 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:43.45,45.3 1 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:46.2,46.42 1 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:46.42,48.3 1 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:50.2,53.16 4 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.38,60.25 2 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:60.25,61.14 1 4
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:43.2,43.45 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:43.45,45.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:46.2,46.42 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:46.42,48.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:50.2,53.16 4 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.38,60.25 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:60.25,61.14 1 0
codeberg.org/snonux/hexai/internal/tmux/tmux.go:61.14,63.12 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:65.3,65.20 1 4
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:65.20,67.12 2 2
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:71.3,72.33 2 2
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:74.2,74.31 1 1
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:78.32,79.30 1 4
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.30,81.141 2 27
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:81.141,82.12 1 25
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.3,84.15 1 2
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:86.2,86.13 1 2
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:65.3,65.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:65.20,67.12 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:71.3,72.33 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:74.2,74.31 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:78.32,79.30 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.30,81.141 2 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:81.141,82.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.3,84.15 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:86.2,86.13 1 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -27511,65 +27511,65 @@ codeberg.org/snonux/hexai/internal/testutil/fixtures.go:9.34,11.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:14.43,16.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:19.33,21.2 1 0
codeberg.org/snonux/hexai/internal/testutil/fixtures.go:24.29,26.2 1 0
-codeberg.org/snonux/hexai/internal/textutil/human.go:7.33,8.14 1 0
-codeberg.org/snonux/hexai/internal/textutil/human.go:8.14,10.3 1 0
-codeberg.org/snonux/hexai/internal/textutil/human.go:11.2,15.37 5 0
-codeberg.org/snonux/hexai/internal/textutil/human.go:15.37,18.3 2 0
-codeberg.org/snonux/hexai/internal/textutil/human.go:19.2,21.41 2 0
+codeberg.org/snonux/hexai/internal/textutil/human.go:7.33,8.14 1 8
+codeberg.org/snonux/hexai/internal/textutil/human.go:8.14,10.3 1 2
+codeberg.org/snonux/hexai/internal/textutil/human.go:11.2,15.37 5 6
+codeberg.org/snonux/hexai/internal/textutil/human.go:15.37,18.3 2 6
+codeberg.org/snonux/hexai/internal/textutil/human.go:19.2,21.41 2 6
codeberg.org/snonux/hexai/internal/textutil/human.go:21.41,23.3 1 0
-codeberg.org/snonux/hexai/internal/textutil/human.go:24.2,24.10 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.31 1 3
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.31,9.3 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.2,11.25 2 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.25,13.3 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.2,14.12 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.13 2 5
+codeberg.org/snonux/hexai/internal/textutil/human.go:24.2,24.10 1 6
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:6.62,7.31 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:7.31,9.3 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:10.2,11.25 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:11.25,13.3 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:14.2,14.12 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:18.39,20.13 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:20.13,22.3 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.2,25.66 3 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:23.2,25.66 3 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:25.66,27.3 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.2,29.54 2 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:28.2,29.54 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:29.54,31.3 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.2,32.51 1 5
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.2,32.51 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:32.51,34.3 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.2,37.69 3 5
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.69,40.3 2 3
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.2,41.10 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.31 2 6
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.31,50.99 1 6
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.99,53.4 2 6
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:35.2,37.69 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:37.69,40.3 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:41.2,41.10 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:47.60,49.31 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:49.31,50.99 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:50.99,53.4 2 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:55.2,55.16 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,65.50 3 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.50,67.3 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:68.2,68.44 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:68.44,69.51 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:69.51,74.4 4 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:76.2,76.46 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:76.46,77.52 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:77.52,82.4 4 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.2,84.44 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.44,86.3 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.2,87.43 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.43,89.3 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.2,90.44 1 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.44,92.3 1 2
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.2,93.21 1 7
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:59.79,65.50 3 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:65.50,67.3 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:68.2,68.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:68.44,69.51 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:69.51,74.4 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:76.2,76.46 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:76.46,77.52 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:77.52,82.4 4 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.2,84.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:84.44,86.3 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.2,87.43 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:87.43,89.3 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.2,90.44 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:90.44,92.3 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.2,93.21 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:93.21,95.3 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:96.2,97.30 2 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:97.30,98.63 1 2
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:96.2,97.30 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:97.30,98.63 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:98.63,100.4 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.2,103.33 2 7
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.79,108.33 1 9
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.33,109.21 1 58
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:109.21,110.12 1 53
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.3,112.42 1 5
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.42,113.12 1 1
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:115.3,115.38 1 4
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:115.38,116.22 1 15
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:116.22,117.37 1 3
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:102.2,103.33 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:107.79,108.33 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:108.33,109.21 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:109.21,110.12 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.3,112.42 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:112.42,113.12 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:115.3,115.38 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:115.38,116.22 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:116.22,117.37 1 0
codeberg.org/snonux/hexai/internal/textutil/textutil.go:117.37,118.14 1 0
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:120.5,121.20 2 3
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:121.20,123.6 1 3
-codeberg.org/snonux/hexai/internal/textutil/textutil.go:127.2,127.26 1 6
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:120.5,121.20 2 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:121.20,123.6 1 0
+codeberg.org/snonux/hexai/internal/textutil/textutil.go:127.2,127.26 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:25.21,27.13 2 0
codeberg.org/snonux/hexai/internal/tmux/status.go:27.13,29.3 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:30.2,31.59 2 0
@@ -27579,46 +27579,46 @@ codeberg.org/snonux/hexai/internal/tmux/status.go:39.2,40.13 2 0
codeberg.org/snonux/hexai/internal/tmux/status.go:40.13,42.3 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:44.2,44.69 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:48.36,48.95 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:52.98,54.2 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:59.115,68.2 3 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:74.194,79.90 4 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:79.90,81.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:82.2,84.34 2 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:84.34,85.50 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:52.98,54.2 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:59.115,68.2 3 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:74.194,79.90 4 2
+codeberg.org/snonux/hexai/internal/tmux/status.go:79.90,81.3 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:82.2,84.34 2 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:84.34,85.50 1 1
codeberg.org/snonux/hexai/internal/tmux/status.go:85.50,87.4 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:88.3,88.21 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:88.21,90.4 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:88.3,88.21 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:88.21,90.4 1 1
codeberg.org/snonux/hexai/internal/tmux/status.go:92.2,92.20 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:95.42,96.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:95.42,96.12 1 2
codeberg.org/snonux/hexai/internal/tmux/status.go:96.12,98.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:99.2,100.18 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:99.2,100.18 2 2
codeberg.org/snonux/hexai/internal/tmux/status.go:100.18,102.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:103.2,103.16 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:103.2,103.16 1 2
codeberg.org/snonux/hexai/internal/tmux/status.go:103.16,105.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:106.2,106.33 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:110.27,112.13 2 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:112.13,114.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:115.2,115.11 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:116.32,117.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:106.2,106.33 1 2
+codeberg.org/snonux/hexai/internal/tmux/status.go:110.27,112.13 2 2
+codeberg.org/snonux/hexai/internal/tmux/status.go:112.13,114.3 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:115.2,115.11 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:116.32,117.14 1 1
codeberg.org/snonux/hexai/internal/tmux/status.go:118.10,119.15 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:124.25,126.13 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:124.25,126.13 2 1
codeberg.org/snonux/hexai/internal/tmux/status.go:126.13,128.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:129.2,130.26 2 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:129.2,130.26 2 1
codeberg.org/snonux/hexai/internal/tmux/status.go:130.26,132.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:133.2,133.10 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:136.45,137.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:133.2,133.10 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:136.45,137.12 1 1
codeberg.org/snonux/hexai/internal/tmux/status.go:137.12,139.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:140.2,140.17 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:140.2,140.17 1 1
codeberg.org/snonux/hexai/internal/tmux/status.go:140.17,142.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:143.2,143.12 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:143.2,143.12 1 1
codeberg.org/snonux/hexai/internal/tmux/status.go:143.12,145.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:146.2,146.24 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:149.35,152.77 3 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:146.2,146.24 1 1
+codeberg.org/snonux/hexai/internal/tmux/status.go:149.35,152.77 3 5
codeberg.org/snonux/hexai/internal/tmux/status.go:152.77,154.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:155.2,155.85 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:155.2,155.85 1 5
codeberg.org/snonux/hexai/internal/tmux/status.go:155.85,157.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:158.2,158.27 1 0
-codeberg.org/snonux/hexai/internal/tmux/status.go:158.27,160.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/status.go:158.2,158.27 1 5
+codeberg.org/snonux/hexai/internal/tmux/status.go:158.27,160.3 1 5
codeberg.org/snonux/hexai/internal/tmux/status.go:161.2,161.15 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:166.58,168.2 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:172.34,180.26 6 0
@@ -27648,31 +27648,31 @@ codeberg.org/snonux/hexai/internal/tmux/status.go:229.11,231.3 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:233.2,234.14 2 0
codeberg.org/snonux/hexai/internal/tmux/status.go:234.14,236.3 1 0
codeberg.org/snonux/hexai/internal/tmux/status.go:237.2,238.48 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:19.23,19.72 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:22.23,22.76 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:33.52,34.20 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:11.23,11.60 1 2
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:19.23,19.72 2 4
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:22.23,22.76 1 3
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:33.52,34.20 1 1
codeberg.org/snonux/hexai/internal/tmux/tmux.go:34.20,36.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:37.2,38.19 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.19,40.3 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:37.2,38.19 2 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:38.19,40.3 1 1
codeberg.org/snonux/hexai/internal/tmux/tmux.go:40.8,42.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:43.2,43.45 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:43.45,45.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:46.2,46.42 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:46.42,48.3 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:50.2,53.16 4 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.38,60.25 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:60.25,61.14 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:43.2,43.45 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:43.45,45.3 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:46.2,46.42 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:46.42,48.3 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:50.2,53.16 4 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:58.38,60.25 2 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:60.25,61.14 1 4
codeberg.org/snonux/hexai/internal/tmux/tmux.go:61.14,63.12 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:65.3,65.20 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:65.20,67.12 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:71.3,72.33 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:74.2,74.31 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:78.32,79.30 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.30,81.141 2 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:81.141,82.12 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.3,84.15 1 0
-codeberg.org/snonux/hexai/internal/tmux/tmux.go:86.2,86.13 1 0
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:65.3,65.20 1 4
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:65.20,67.12 2 2
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:71.3,72.33 2 2
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:74.2,74.31 1 1
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:78.32,79.30 1 4
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:79.30,81.141 2 27
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:81.141,82.12 1 25
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:84.3,84.15 1 2
+codeberg.org/snonux/hexai/internal/tmux/tmux.go:86.2,86.13 1 2
codeberg.org/snonux/hexai/cmd/hexai/main.go:14.13,17.18 3 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:17.18,20.3 2 0
codeberg.org/snonux/hexai/cmd/hexai/main.go:22.2,22.104 1 0
@@ -27683,19 +27683,19 @@ codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.2,22.79 1 0
codeberg.org/snonux/hexai/cmd/hexai-lsp/main.go:22.79,24.3 1 0
codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:12.13,25.107 9 0
codeberg.org/snonux/hexai/cmd/hexai-tmux-action/main.go:25.107,28.3 2 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:109.29,161.2 2 4
-codeberg.org/snonux/hexai/internal/appconfig/config.go:165.35,165.84 1 2
-codeberg.org/snonux/hexai/internal/appconfig/config.go:174.64,176.19 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:109.29,161.2 2 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:165.35,165.84 1 0
+codeberg.org/snonux/hexai/internal/appconfig/config.go:174.64,176.19 2 0
codeberg.org/snonux/hexai/internal/appconfig/config.go:176.19,178.3 1 0
-codeberg.org/snonux/hexai/internal/appconfig/config.go:180.2,181.16 2 4
+codeberg.org/snonux/hexai/internal/appconfig/config.go:180.2,181.16 2 0