v0.24.0 166837a

2026-10-12

8d95a49fix(ci): check the assignment under the run lock and never return a typed nil GPG Verifiedbrice
9728eccfix(ci): end a cancelled job whose assignment was not acknowledged GPG Verifiedbrice
ce785bffix(ci): make no run and no check while no runner is registered GPG Verifiedbrice
5aba7f2fix(ci): run push workflows when a push brings no new commit GPG Verifiedbrice
5769af5test(kvstore): accept a conflict from SetRead racing with a repository delete GPG Verifiedbrice
cfd70ebbuild(deps): require ermite-actions main and resolve module sums online GPG Verifiedbrice
5df470bfix(ci): count the acknowledgement timeout from the start of the server when it is later GPG Verifiedbrice
1769e4ffeat(ci): add the Actions pages, live job logs and check marks GPG Verifiedbrice
1bd4fe7feat(ci): add the run and runner commands and the runner token preset GPG Verifiedbrice
f2fa559test(ci): key the step range literals GPG Verifiedbrice
29932f1test(ci): cover triggers, cancel, re-run, matrix, restart and the merge rule GPG Verifiedbrice
5fbf954feat(ci): serve RunnerService and RunService, wire CI into the server GPG Verifiedbrice
2965018feat(ci): trigger, plan and run workflows, and block merges on checks GPG Verifiedbrice
f17c3d9feat(ci): list the paths changed between two commits for push filters GPG Verifiedbrice
9cf140efeat(ci): store CI runs, jobs, checks and runners, and keep job logs in files GPG Verifiedbrice
db04eb5refactor(web): one submit entry point for the passkey script GPG Verifiedbrice
f42a3e9test(passkeys): cover the web adapter mapping, a failing Remove and the full-store eviction GPG Verifiedbrice
005cbdarefactor(passkeys): one sign-count check, one client key, the name given at begin GPG Verifiedbrice
7fad59bfix(cli): kill the whole token.cmd process tree and simplify the client setup GPG Verifiedbrice
ea28447docs(cli): document the token.cmd kill, the Windows limit and config show --json GPG Verifiedbrice
0587f1cfeat(cli): add config show --json and warn when token.cmd would be refused GPG Verifiedbrice
70103datest: cover version-check failures and revoking a branch-limited all-scope token GPG Verifiedbrice
8d436fdtest: share a scoped token builder and tidy the branch tests GPG Verifiedbrice
160bcbbdocs: say that owner rights also need no branch prefixes GPG Verifiedbrice
e0dab23refactor(usecase): gate repository administration in adminAccess GPG Verifiedbrice
323ab4erefactor(cli): read the exit status from the embedded process state GPG Verifiedbrice
5a81f18chore(deps): pin ermite-api with token branch prefixes GPG Verifiedbrice
79312cbchore(deps): pin ermite-api with the passkey RPCs GPG Verifiedbrice
f867fa3fix(web): harden the passkey script and put the add button in a form GPG Verifiedbrice
6125ca9fix(passkeys): log refusals, recheck the sign count, cap pending logins per client GPG Verifiedbrice
633b248test(webauthn): check a fresh assertion still succeeds after each refusal case GPG Verifiedbrice
24ccd67refactor(app): share cookieLifetime between link and passkey sign-in GPG Verifiedbrice
4dcdc18docs: a branch-limited token cannot change repository settings GPG Verifiedbrice
14b68eadocs(domain): state the assumptions behind the branch prefix check GPG Verifiedbrice
e751749fix(cli): check the server supports branch prefixes before creating a token GPG Verifiedbrice
908d505test(app): check the refused ref is named in a mixed push with a tag GPG Verifiedbrice
5efe413fix(usecase): ignore empty creator prefixes in the no-escalation check GPG Verifiedbrice
12d3d1efix(usecase): refuse repository settings changes to branch-limited tokens GPG Verifiedbrice
7233711docs: document passkey sign-in and ermite web passkey GPG Verifiedbrice
21bc4ddfeat(app): wire passkeys when the public URL allows them GPG Verifiedbrice
26943f5feat(cli): add ermite web passkey list and remove GPG Verifiedbrice
0ab5a9dfeat(web): sign in with a passkey and manage passkeys on the web GPG Verifiedbrice
60f459fdocs(cli): fix a stale function name in a comment GPG Verifiedbrice
3ba41acfix(cli): keep completion anonymous and report config file errors GPG Verifiedbrice
aca5d0cfix(cli): harden how token.cmd is run GPG Verifiedbrice
fff3337fix(cli): run token.cmd only for the server of the config file GPG Verifiedbrice
cb46f91docs: document branch-limited tokens GPG Verifiedbrice
977138dtest(app): cover branch-limited tokens end to end GPG Verifiedbrice
10270dbfeat(api): expose token branch prefixes in the RPC and the CLI GPG Verifiedbrice
616a749feat(kvstore): store token branch prefixes and bump the schema to 2 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 2

Tags 45

↑↓ moveenter openesc close