2026-10-03

d261275test(daemon): assert pane cancellation follows shutdown preservation reservation GPG Verifiedfeat/host-transport-flag brice
291cc75fix(daemon): reserve shutdown preservation before cancelling pane processes GPG Verifiedbrice
0db7657feat(host): select remote transport with host add --transport GPG Verifiedbrice
8a884f0feat(env): refresh session environment on attach and add vev env (#305) GPG Unverifiedbnema

2026-10-02

c37833bperf(web): update vev-vt to v0.6.0 and coalesce browser updates (#3) tag v0.5.0brice
f449baeperf(daemon): drop duplicate sha256 during snapshot restore (#2) brice
232a7dbperf(daemon): publish the socket before snapshot GC and fence GC per incarnation (#1) brice

2026-09-30

74436e9feat(client): remember selected tabs per session (#304) GPG Unverifiedbnema

2026-09-29

80d04fefix(client): keep picker input released when an attachment run is cancelled (#303) GPG Unverifiedbnema
b90b5f2test(daemon): keep the real handshake budget in notifyClock (#302) GPG Unverifiedbnema
46d259bfix(palette): use the compact rail for every floating width (#300) GPG Unverifiedbnema
7907dderefactor: give broker observation, routing, daemon render/resume state, and picker interaction one owner each (#301) GPG Unverifiedbnema
ec60b5crefactor: deepen daemon, broker, and client architecture seams (#299) GPG Unverifiedbnema

2026-09-28

be54d4frefactor: deepen daemon render publication and client attachment lifecycle (#298) GPG Unverifiedbnema

2026-09-26

12ae076feat(bar): expose local client PID to bar scripts as VEV_CLIENT_PID (#297) GPG Unverifiedtag v0.4.0bnema
cd9b41ffeat(ui): queue and stack toast notifications (#296) GPG Unverifiedbnema
46a921ffix(render): blank cells outside the shared layout in larger windows GPG Verifiedbrice
ab824cffix(focus): keep geometry on the focused window when a background window claims it GPG Verifiedbrice
27972fdfeat(focus): resize session content to the client whose window gains focus GPG Verifiedbrice
7b5f8cffeat(focus): only a focused vev client acknowledges attention bells (#284) GPG Verifiedbnema
41d5105feat(keys): kitty keyboard protocol and Ctrl+1..9 recent-session switching (#295) GPG Unverifiedbnema
60d0c9ffeat(picker): problem-only status dots and typed client notices (#293) GPG Unverifiedbnema
5334f33fix(daemon): clear the palette before opening a client picker (#292) GPG Unverifiedbnema
9386b87feat(attach): let the daemon resolve attach-by-name (#291) GPG Unverifiedbnema

2026-09-25

b3c9196fix(broker): upgrade pinned host protocol versions on startup (#289) GPG Unverifiedbnema
def4c6efeat(session): close ephemeral sessions when their last client exits (#288) GPG Unverifiedbnema
6253aa4fix: credit flow control and auto-resume for lost remote attachments (#287) GPG Unverifiedbnema
51fda06fix(broker): allow control characters in environment values (#285) GPG UnverifiedBrice Amen

2026-09-24

8ea43d2fix(status): show ringing sessions in every client's recent history (#283) GPG Unverifiedbnema
32ce382docs: clearer README and guides, fix facts that drifted from the code (#281) GPG Unverifiedbnema
9d8d577fix(client): keep Connecting through a broker loss and drop picker input typed while hidden GPG Verifiedbrice
d1a05e5fix(client): present Connecting instead of the picker while the initial navigation is pending GPG Verifiedbrice
c549dd3fix(picker): draw tree lines in a fixed grey and trim doubled detail spaces GPG Verifiedbrice
3a14a3cfix(app): stop printing retryable broker failures over the retry notice GPG Verifiedbrice

2026-09-23

0b823c5test: stop CI flakes in socket, daemon election, web reconnect, and QUIC tests GPG Verifiedbrice
e77fed7fix(sshstdio): bound how long mux close waits for a lingering grandchild GPG Verifiedbrice
d2968ddfix(ipc): serialize socket bind and stale recovery with a sibling lock GPG Verifiedbrice
665fa7btest(app): build the Linux-only daemon tests only on Linux GPG Verifiedbrice
3b7ecbatest(app): wait for the attached presentation instead of racing it GPG Verifiedbrice
6a2bad6fix(kill): resolve a symlinked working directory like vev does GPG Verifiedbrice
eef302dfix(kill): match processes by their resolved socket directory and skip stuck ones on rescan GPG Verifiedbrice
436e203fix(kill): scope kill --all to one environment, rescan for respawns, and add a hidden daemon stop GPG Verifiedbrice
0a0e1c0feat(kill): make kill --all stop every vev process and rename the session purge to --sessions GPG Verifiedbrice
4df485dfix(picker): open move pickers most-recent first GPG Verifiedbrice
6978461fix(picker): keep the status dot uninverted on the selected row and drop empty host counts GPG Verifiedbrice
7eed007fix(broker): narrow SSH auth classification, keep dial causes, and document visited routes GPG Verifiedbrice
f06fef6feat(picker): show session state as a 256-color dot GPG Verifiedbrice
da33c7afeat(picker): right-align short session details and status words GPG Verifiedbrice
363b093feat(picker): draw the session list as a dimmed tree GPG Verifiedbrice
417e024fix(picker): keep the cursor on the previous row when the selected row leaves 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 12

Tags 11

↑↓ moveenter openesc close