detached fdd661a

2026-10-22

fdd661aMerge branch 'fix/drm-enomem-retry' into main (!25) merge SSH Verified1/1ermite
6d4359dMerge branch 'fix/nvidia-cursor-plane' into main (!26) merge SSH Verified1/1ermite
007c134chore(license): relicense under AGPL-3.0-only GPG Verified2/2brice
bd83a2dtest(drm): cover cursor fallback state, crop rows and file ownership GPG Verified1/1brice
a5f1806fix(drm): allocate hardware cursor images as KMS dumb buffers GPG Verifiedbrice
d40e1f9fix(drm): reap signalled render fences during commit retries GPG Verified1/1brice
7703bb9fix(drm): separate the frame wait reason from the memory-refusal run GPG Verifiedbrice
d707400fix(drm): retry commits refused for memory instead of stopping the output GPG Verifiedbrice
3c13b3dMerge branch 'fix/gbm-scanout-images' into main (!24) merge SSH Verified1/1ermite
760a012refactor(drm): mark the Vulkan-export output image fallback deprecated GPG Verified1/1brice
48800daci(release): publish releases on ermite instead of GitHub GPG Verified2/2brice
26fa5a1chore(README): new video demo GPG Unverified1/1bnema
95445f0fix(demo): fail truncated recordings and document the AMD GPU requirement GPG Verified1/2brice
b35bb20test(headless): assert screenshot hard links and cover skip and rename failure paths GPG Verifiedbrice
b970441refactor(headless): share the screenshot security gate GPG Verifiedbrice
9ccafd9chore(demo): re-record the demo with faster screenshot frames GPG Verifiedbrice
0eeac95perf(headless): encode each screenshot frame once with fast PNG compression GPG Verifiedbrice
3a0a985feat(demo): open the hint scene on fullscreen Firefox GPG Verifiedbrice
d5c3b34feat(demo): show hint mode on real sites with the compositor in the image GPG Verifiedbrice

2026-10-21

f0c31c4refactor(drm): simplify GBM image lifecycle and harden the fence gate GPG Verifiedbrice
53269c8fix(drm): allocate output images with GBM and import them into Vulkan GPG Verifiedbrice
c64260btest(app): accept cancellation during session lock teardown GPG Verified2/2brice
716a579fix(focus): flash the resulting focus on modal and drag clicks GPG Verifiedbrice
0c04aeefix(focus): flash the focused window on click focus GPG Verifiedbrice
ec21f32perf(overview): skip separator allocation for rounded outline GPG Verified2/2brice
de11a8dfix(overview): round the selection outline with border.radius GPG Verifiedbrice
e0a8611feat(hints): add hint.capture to show hint labels in client captures GPG Verified2/2brice
cee25edtest(vulkan): cover clipped, clamped, square and rotated hint draws GPG Verified2/2brice
0647966refactor(vulkan): share fillRounded between hint, inner border and ring GPG Verifiedbrice
038e199test(core): drop redundant ResetTimer calls after b.Loop GPG Verifiedbrice
9e988aftest(core): cover column edges across overflow modes and border pair limits GPG Verifiedbrice
12f4382refactor(core): pass lane span validity to laneWidth GPG Verifiedbrice
faf772dperf(core): use columnEdges in scrollBy GPG Verifiedbrice
02f068bperf(core): drop the duplicate stale-lane pass in dropStaleSpans GPG Verifiedbrice
09733c2perf(core): validate span lanes once per layout pass GPG Verifiedbrice
14b0437perf(core): keep the focus flash sample on the stack GPG Verifiedbrice
024f793perf(core): skip publishing border resize motions that change nothing GPG Verifiedbrice
04334a4test(core): benchmark layout, snap points and border resize motion GPG Verifiedbrice
fac869bperf(vulkan): draw position hint dots as single rounded quads GPG Verifiedbrice
37f59a2Merge branch 'fix/flaky-capture-syncobj' into main (!14) merge SSH Verified1/1ermite
0b0d373test(core): drain capture commands before the layer change GPG Verified1/1brice
0e8d58dtest(wayland): send a single request to trigger the no_surface error GPG Verifiedbrice
4f9bb17fix(render): round the focus flash like the window corners GPG Verified2/2brice
318e2d8Merge branch 'feat/pointer-grab-resize' into main (!10) merge SSH Verified1/1ermite
672ba53docs(desktop): describe workspace geometry in the state file GPG Verified1/2brice
b996bb5feat(statefile): write the state file at most once per second GPG Verifiedbrice
f8e0ac9feat(state): list workspaces with column and window geometry GPG Verifiedbrice
f2fc42dfix(core): clear foreign span stamps on columns added by addColumn GPG Verified1/1brice
f020f70test(core): drop struct-shape check for border resize GPG Verifiedbrice
00a0a44refactor(core): reuse contains for border hit zones GPG Verifiedbrice

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 25

Tags 10

↑↓ moveenter openesc close