v0.9.0 dd8597a

2026-10-10

3a3918drefactor(cli): drop repo create --private and share output and paging helpers GPG Verifiedbrice
66b7417test(client): end handler on context instead of a fixed wait GPG Verifiedbrice
77dd5e4fix(client): strip terminal controls from error lines and keep URLs out of errors GPG Verifiedbrice
ee9ce2ctest(app): wait for the maintainer to be idle instead of sleeping GPG Verifiedbrice
fcf895dtest(cmd,rpc): wait for events with sentinels and long timeouts, and table-test the enum mappers GPG Verifiedbrice
fbcd64ebuild(deps): bump ermite-api for the Watch and ListCommits documentation GPG Verifiedbrice
15cb272feat(rpc): report truncated trees and last commits, bound GetTree GPG Verifiedbrice
d97ab57refactor(gitcli): resolve object ids before refs, read HEAD in one place, walk last commits in a loop GPG Verifiedbrice
147824dfix(gitcli): bound the one-shot git processes and the open blob streams GPG Verifiedbrice
1dc333efix(events): end Watch for revoked tokens, bound watchers, and keep the visibility of event time GPG Verifiedbrice
f305b1cfix(rpc): trust a context principal only from the in-process transport GPG Verifiedbrice
1e62968refactor(app): share keyset paging and repository lookup, cap commit page skips GPG Verifiedbrice
1b88622refactor(rpc): flush Watch headers with a nil send and mount handlers directly GPG Verifiedbrice
1930d9bbuild(deps): bump ermite-api for the GetTree truncation flags GPG Verifiedbrice
ee46681test(cli): run the remote CLI end to end against a real forge GPG Verifiedbrice
b217ad3fix(client): retry watch streams cut mid-frame and word them as a broken connection GPG Verifiedbrice
2435de3docs(readme): document the remote CLI GPG Verifiedbrice
cd1e37dfeat(cli): add repo, token, version and watch commands GPG Verifiedbrice
46d89a8feat(client): add Connect client adapter for the remote CLI GPG Verifiedbrice
6a0af58test(rpc): cover access, tokens, blobs, trash, default branch and events through Connect GPG Verifiedbrice
af0b337feat(rpc): serve the ConnectRPC API with update, delete, token and event use cases GPG Verifiedbrice
435618afeat(domain): add update/delete events, request-scoped principal and gitcli branch helpers GPG Verifiedbrice
6e542e5refactor(clientlimit): move the failed-auth limiter out of githttp GPG Verifiedbrice
638a507feat(app): add read use cases with access checks GPG Verifiedbrice
0d9c2a3feat(gitcli): read refs, trees, blobs, history and diffs with a cat-file pool GPG Verifiedbrice
1b7c75afeat(domain): add read-side git types GPG Verifiedbrice
423aa4ffeat(githttp): stream push bodies, allowlist CGI input and revalidate hook tokens GPG Verifiedbrice
474d85efeat(gitcli): set receive.maxInputSize on pushes from Config.MaxReceiveBytes GPG Verifiedbrice
857b2f4feat(app): limit token list and revoke to the caller's reach, add Auth.Revalidate GPG Verifiedbrice
71acbb2perf(githttp): sweep the limiter once per interval and group IPv6 clients by /64 GPG Verifiedbrice
58ac19erefactor(eventbus): unsubscribe with context.AfterFunc and key subscribers by channel GPG Verifiedbrice
a771dd2refactor(app): drop dead crypto/rand error paths and unused helpers GPG Verifiedbrice
89fd514test(e2e): use requireGit so CI cannot skip the Git tests GPG Verifiedbrice
b0a4fdftest(e2e): run the real git client against the wired server for AC1-AC8 GPG Verifiedbrice
979aa64feat(serve): wire push use cases, event bus and debounced maintenance GPG Verifiedbrice
d949cadfeat(githttp): add the hook socket, hook scripts and the ermite hook command GPG Verifiedbrice
16a8861feat(app): open repositories for push, create on first push and fix the default branch GPG Verifiedbrice
1ab78bbfeat(githttp): serve smart HTTP through git http-backend with Basic auth and a failed-login limiter GPG Verifiedbrice
851827crefactor(domain): unexport the principal kind and expose a label GPG Verifiedbrice
2bea74efeat(app): add token use cases, authentication and token-aware access rule GPG Verifiedbrice
607c375feat(tokens): add token and scope domain, storage message and kv token store GPG Verifiedbrice
2b1cdbfci: keep checkout options on the checkout step GPG Verifiedbrice
9f1b083ci: fetch private modules through the runner's Forgejo route GPG Verifiedbrice
bf21654ci: run tests on the arch label for git 2.45 or newer GPG Verifiedbrice
4e14be1refactor: simplify config lookup, git default and create errors; strengthen tests GPG Verifiedbrice
763b41fci: fail when git is older than 2.45 GPG Verifiedbrice
30815dbfix(gitcli): keep a published repo when the directory sync fails GPG Verifiedbrice
b9b6781fix(serve): reset run dir after taking the kv lock and restore signals on shutdown GPG Verifiedbrice
620ae64ci: add buf lint, breaking and drift checks GPG Verifiedbrice
b7fa16ddocs: document ermite serve and its environment 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 4

Tags 45

↑↓ moveenter openesc close