detached b764bd2

Merge branch 'main' into feat/stability-performance-multi-agent-2026-02-07

commit
b764bd2edef1c261123daeaeddc1b955fe64b185
author
bnema · · 2026-02-07 06:46 UTC
committer
GitHub · · 2026-02-07 06:46 UTC
merge of
ff377bb + 01bb10e · diff against the first parent
signature
GPG UnverifiedB5690EEEBB952194 The key is unknown
4 files · +51 -64
M go.mod +5 -5
@@ -4,7 +4,7 @@ go 1.25.3
44
55 require (
66 github.com/bnema/puregotk-webkit v0.0.10
7- github.com/charmbracelet/bubbles v0.21.0
7+ github.com/charmbracelet/bubbles v0.21.1
88 github.com/charmbracelet/bubbletea v1.3.10
99 github.com/charmbracelet/lipgloss v1.1.0
1010 github.com/fsnotify/fsnotify v1.9.0
@@ -28,12 +28,12 @@ require (
2828 github.com/atotto/clipboard v0.1.4 // indirect
2929 github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
3030 github.com/charmbracelet/colorprofile v0.4.1 // indirect
31- github.com/charmbracelet/x/ansi v0.11.4 // indirect
32- github.com/charmbracelet/x/cellbuf v0.0.14 // indirect
31+ github.com/charmbracelet/x/ansi v0.11.5 // indirect
32+ github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
3333 github.com/charmbracelet/x/term v0.2.2 // indirect
34- github.com/clipperhouse/displaywidth v0.7.0 // indirect
34+ github.com/clipperhouse/displaywidth v0.9.0 // indirect
3535 github.com/clipperhouse/stringish v0.1.1 // indirect
36- github.com/clipperhouse/uax29/v2 v2.3.1 // indirect
36+ github.com/clipperhouse/uax29/v2 v2.5.0 // indirect
3737 github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
3838 github.com/davecgh/go-spew v1.1.1 // indirect
3939 github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
@@ -4,7 +4,7 @@ go 1.25.3
4 4
5 require (5 require (
6 github.com/bnema/puregotk-webkit v0.0.106 github.com/bnema/puregotk-webkit v0.0.10
7- github.com/charmbracelet/bubbles v0.21.07+ github.com/charmbracelet/bubbles v0.21.1
8 github.com/charmbracelet/bubbletea v1.3.108 github.com/charmbracelet/bubbletea v1.3.10
9 github.com/charmbracelet/lipgloss v1.1.09 github.com/charmbracelet/lipgloss v1.1.0
10 github.com/fsnotify/fsnotify v1.9.010 github.com/fsnotify/fsnotify v1.9.0
@@ -28,12 +28,12 @@ require (
28 github.com/atotto/clipboard v0.1.4 // indirect28 github.com/atotto/clipboard v0.1.4 // indirect
29 github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect29 github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
30 github.com/charmbracelet/colorprofile v0.4.1 // indirect30 github.com/charmbracelet/colorprofile v0.4.1 // indirect
31- github.com/charmbracelet/x/ansi v0.11.4 // indirect31+ github.com/charmbracelet/x/ansi v0.11.5 // indirect
32- github.com/charmbracelet/x/cellbuf v0.0.14 // indirect32+ github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
33 github.com/charmbracelet/x/term v0.2.2 // indirect33 github.com/charmbracelet/x/term v0.2.2 // indirect
34- github.com/clipperhouse/displaywidth v0.7.0 // indirect34+ github.com/clipperhouse/displaywidth v0.9.0 // indirect
35 github.com/clipperhouse/stringish v0.1.1 // indirect35 github.com/clipperhouse/stringish v0.1.1 // indirect
36- github.com/clipperhouse/uax29/v2 v2.3.1 // indirect36+ github.com/clipperhouse/uax29/v2 v2.5.0 // indirect
37 github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect37 github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
38 github.com/davecgh/go-spew v1.1.1 // indirect38 github.com/davecgh/go-spew v1.1.1 // indirect
39 github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect39 github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
M go.sum +8 -8
@@ -16,20 +16,20 @@ github.com/charmbracelet/colorprofile v0.4.1 h1:a1lO03qTrSIRaK8c3JRxJDZOvhvIeSco
1616 github.com/charmbracelet/colorprofile v0.4.1/go.mod h1:U1d9Dljmdf9DLegaJ0nGZNJvoXAhayhmidOdcBwAvKk=
1717 github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY=
1818 github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30=
19-github.com/charmbracelet/x/ansi v0.11.4 h1:6G65PLu6HjmE858CnTUQY1LXT3ZUWwfvqEROLF8vqHI=
20-github.com/charmbracelet/x/ansi v0.11.4/go.mod h1:/5AZ+UfWExW3int5H5ugnsG/PWjNcSQcwYsHBlPFQN4=
21-github.com/charmbracelet/x/cellbuf v0.0.14 h1:iUEMryGyFTelKW3THW4+FfPgi4fkmKnnaLOXuc+/Kj4=
22-github.com/charmbracelet/x/cellbuf v0.0.14/go.mod h1:P447lJl49ywBbil/KjCk2HexGh4tEY9LH0/1QrZZ9rA=
19+github.com/charmbracelet/x/ansi v0.11.5 h1:NBWeBpj/lJPE3Q5l+Lusa4+mH6v7487OP8K0r1IhRg4=
20+github.com/charmbracelet/x/ansi v0.11.5/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ=
21+github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI=
22+github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q=
2323 github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91 h1:payRxjMjKgx2PaCWLZ4p3ro9y97+TVLZNaRZgJwSVDQ=
2424 github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
2525 github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk=
2626 github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI=
27-github.com/clipperhouse/displaywidth v0.7.0 h1:QNv1GYsnLX9QBrcWUtMlogpTXuM5FVnBwKWp1O5NwmE=
28-github.com/clipperhouse/displaywidth v0.7.0/go.mod h1:R+kHuzaYWFkTm7xoMmK1lFydbci4X2CicfbGstSGg0o=
27+github.com/clipperhouse/displaywidth v0.9.0 h1:Qb4KOhYwRiN3viMv1v/3cTBlz3AcAZX3+y9OLhMtAtA=
28+github.com/clipperhouse/displaywidth v0.9.0/go.mod h1:aCAAqTlh4GIVkhQnJpbL0T/WfcrJXHcj8C0yjYcjOZA=
2929 github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs=
3030 github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA=
31-github.com/clipperhouse/uax29/v2 v2.3.1 h1:RjM8gnVbFbgI67SBekIC7ihFpyXwRPYWXn9BZActHbw=
32-github.com/clipperhouse/uax29/v2 v2.3.1/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=
31+github.com/clipperhouse/uax29/v2 v2.5.0 h1:x7T0T4eTHDONxFJsL94uKNKPHrclyFI0lm7+w94cO8U=
32+github.com/clipperhouse/uax29/v2 v2.5.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=
3333 github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
3434 github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
3535 github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo=
@@ -16,20 +16,20 @@ github.com/charmbracelet/colorprofile v0.4.1 h1:a1lO03qTrSIRaK8c3JRxJDZOvhvIeSco
16 github.com/charmbracelet/colorprofile v0.4.1/go.mod h1:U1d9Dljmdf9DLegaJ0nGZNJvoXAhayhmidOdcBwAvKk=16 github.com/charmbracelet/colorprofile v0.4.1/go.mod h1:U1d9Dljmdf9DLegaJ0nGZNJvoXAhayhmidOdcBwAvKk=
17 github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY=17 github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY=
18 github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30=18 github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30=
19-github.com/charmbracelet/x/ansi v0.11.4 h1:6G65PLu6HjmE858CnTUQY1LXT3ZUWwfvqEROLF8vqHI=19+github.com/charmbracelet/x/ansi v0.11.5 h1:NBWeBpj/lJPE3Q5l+Lusa4+mH6v7487OP8K0r1IhRg4=
20-github.com/charmbracelet/x/ansi v0.11.4/go.mod h1:/5AZ+UfWExW3int5H5ugnsG/PWjNcSQcwYsHBlPFQN4=20+github.com/charmbracelet/x/ansi v0.11.5/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ=
21-github.com/charmbracelet/x/cellbuf v0.0.14 h1:iUEMryGyFTelKW3THW4+FfPgi4fkmKnnaLOXuc+/Kj4=21+github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI=
22-github.com/charmbracelet/x/cellbuf v0.0.14/go.mod h1:P447lJl49ywBbil/KjCk2HexGh4tEY9LH0/1QrZZ9rA=22+github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q=
23 github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91 h1:payRxjMjKgx2PaCWLZ4p3ro9y97+TVLZNaRZgJwSVDQ=23 github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91 h1:payRxjMjKgx2PaCWLZ4p3ro9y97+TVLZNaRZgJwSVDQ=
24 github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=24 github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
25 github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk=25 github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk=
26 github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI=26 github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI=
27-github.com/clipperhouse/displaywidth v0.7.0 h1:QNv1GYsnLX9QBrcWUtMlogpTXuM5FVnBwKWp1O5NwmE=27+github.com/clipperhouse/displaywidth v0.9.0 h1:Qb4KOhYwRiN3viMv1v/3cTBlz3AcAZX3+y9OLhMtAtA=
28-github.com/clipperhouse/displaywidth v0.7.0/go.mod h1:R+kHuzaYWFkTm7xoMmK1lFydbci4X2CicfbGstSGg0o=28+github.com/clipperhouse/displaywidth v0.9.0/go.mod h1:aCAAqTlh4GIVkhQnJpbL0T/WfcrJXHcj8C0yjYcjOZA=
29 github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs=29 github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs=
30 github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA=30 github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA=
31-github.com/clipperhouse/uax29/v2 v2.3.1 h1:RjM8gnVbFbgI67SBekIC7ihFpyXwRPYWXn9BZActHbw=31+github.com/clipperhouse/uax29/v2 v2.5.0 h1:x7T0T4eTHDONxFJsL94uKNKPHrclyFI0lm7+w94cO8U=
32-github.com/clipperhouse/uax29/v2 v2.3.1/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=32+github.com/clipperhouse/uax29/v2 v2.5.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=
33 github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=33 github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
34 github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=34 github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
35 github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo=35 github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo=
M webui/package-lock.json +31 -44 generated file: collapsed
M webui/package.json +7 -7
@@ -17,22 +17,22 @@
1717 "fmt": "prettier --write ."
1818 },
1919 "devDependencies": {
20- "@internationalized/date": "^3.10.1",
20+ "@internationalized/date": "^3.11.0",
2121 "@lucide/svelte": "^0.563.1",
2222 "@sveltejs/vite-plugin-svelte": "^6.2.4",
2323 "@tailwindcss/cli": "^4.0.0",
2424 "@tailwindcss/postcss": "^4.1.13",
25- "@types/node": "^25.1.0",
25+ "@types/node": "^25.2.0",
2626 "@typescript-eslint/eslint-plugin": "^8.54.0",
2727 "@typescript-eslint/parser": "^8.54.0",
28- "autoprefixer": "^10.4.20",
28+ "autoprefixer": "^10.4.24",
2929 "eslint": "^9.39.2",
3030 "eslint-plugin-svelte": "^3.14.0",
31- "globals": "^17.2.0",
31+ "globals": "^17.3.0",
3232 "postcss": "^8.4.47",
33- "svelte": "^5.48.5",
33+ "svelte": "^5.49.2",
3434 "svelte-awesome-color-picker": "^4.1.0",
35- "svelte-check": "^4.0.0",
35+ "svelte-check": "^4.3.6",
3636 "tailwind-variants": "^3.2.2",
3737 "tailwindcss": "^4.0.0",
3838 "tw-animate-css": "^1.4.0",
@@ -41,7 +41,7 @@
4141 "vite": "^7.3.1"
4242 },
4343 "dependencies": {
44- "bits-ui": "^2.14.4",
44+ "bits-ui": "^2.15.5",
4545 "clsx": "^2.1.1",
4646 "frappe-charts": "^1.6.2",
4747 "mode-watcher": "^1.1.0",
@@ -17,22 +17,22 @@
17 "fmt": "prettier --write ."17 "fmt": "prettier --write ."
18 },18 },
19 "devDependencies": {19 "devDependencies": {
20- "@internationalized/date": "^3.10.1",20+ "@internationalized/date": "^3.11.0",
21 "@lucide/svelte": "^0.563.1",21 "@lucide/svelte": "^0.563.1",
22 "@sveltejs/vite-plugin-svelte": "^6.2.4",22 "@sveltejs/vite-plugin-svelte": "^6.2.4",
23 "@tailwindcss/cli": "^4.0.0",23 "@tailwindcss/cli": "^4.0.0",
24 "@tailwindcss/postcss": "^4.1.13",24 "@tailwindcss/postcss": "^4.1.13",
25- "@types/node": "^25.1.0",25+ "@types/node": "^25.2.0",
26 "@typescript-eslint/eslint-plugin": "^8.54.0",26 "@typescript-eslint/eslint-plugin": "^8.54.0",
27 "@typescript-eslint/parser": "^8.54.0",27 "@typescript-eslint/parser": "^8.54.0",
28- "autoprefixer": "^10.4.20",28+ "autoprefixer": "^10.4.24",
29 "eslint": "^9.39.2",29 "eslint": "^9.39.2",
30 "eslint-plugin-svelte": "^3.14.0",30 "eslint-plugin-svelte": "^3.14.0",
31- "globals": "^17.2.0",31+ "globals": "^17.3.0",
32 "postcss": "^8.4.47",32 "postcss": "^8.4.47",
33- "svelte": "^5.48.5",33+ "svelte": "^5.49.2",
34 "svelte-awesome-color-picker": "^4.1.0",34 "svelte-awesome-color-picker": "^4.1.0",
35- "svelte-check": "^4.0.0",35+ "svelte-check": "^4.3.6",
36 "tailwind-variants": "^3.2.2",36 "tailwind-variants": "^3.2.2",
37 "tailwindcss": "^4.0.0",37 "tailwindcss": "^4.0.0",
38 "tw-animate-css": "^1.4.0",38 "tw-animate-css": "^1.4.0",
@@ -41,7 +41,7 @@
41 "vite": "^7.3.1"41 "vite": "^7.3.1"
42 },42 },
43 "dependencies": {43 "dependencies": {
44- "bits-ui": "^2.14.4",44+ "bits-ui": "^2.15.5",
45 "clsx": "^2.1.1",45 "clsx": "^2.1.1",
46 "frappe-charts": "^1.6.2",46 "frappe-charts": "^1.6.2",
47 "mode-watcher": "^1.1.0",47 "mode-watcher": "^1.1.0",

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close