detached 27e453c

2026-10-19

5d95127fix(web): enable the merge button after choosing a mode by keyboard GPG Verifiedbrice
1b45752fix(web): keep the merge box inside its popover and the MR URL after a refused merge GPG Verifiedbrice
b5b4bf9feat(web,cli): live mergeability in the merge box, merge modes and inline merge errors GPG Verifiedbrice
fc9623bfix(mr): safe async source deletion, single-run mergeability queue and domain-side merge-tree bounds GPG Verifiedbrice
bf27c54feat(mr): per-mode merge checks, signed merge commits and side effects after the response GPG Verifiedbrice
b707720refactor(kvstore): decode the mergeability record without mutating it GPG Verifiedbrice
23c66c0feat(mr): background mergeability checks, their Watch event and API field GPG Verifiedbrice
8f36a2ffeat(mr): mergeability types, merge-tree checks, storage record and merge commit mode GPG Verifiedbrice
4ce8534feat(web): review page polish and home page ordered by last activity (!6) SSH Verified3/4brice
d8e7d5btest(app): give the concurrent push test one receive-pack slot per push GPG Verified8/8brice
67508cctest(usecase): run the issue moderation subtests in parallel GPG Verified7/8brice
f6f76c8build(deps): ermite-api v0.9.0 GPG Verifiedbrice
7e0e489feat(kvstore): grant mr:review and issue:write to full tokens in the schema 4 upgrade GPG Verifiedbrice
fa37646merge: main with merge request notes into feat/issue-form merge GPG Verifiedbrice
86ac875Merge remote-tracking branch 'origin/main' into feat/mr-notes merge GPG Verified7/8brice
77b3426build(deps): ermite-api v0.8.0 GPG Verifiedbrice
d9a8fffci: skip the CI run for changes to docs, Markdown and PNG files only GPG Verified7/8brice
1b19512fix(web): make home screen icons full-bleed without a drawn border GPG Verified4/4brice
b1b26b4fix(web): render apple touch icon with transparent corners GPG Verifiedbrice
346e37fdocs: correct issue access, limiter and comment docs GPG Verified1/4brice
e53302brefactor(kvstore): keep the hexcheck waiver on issue approval GPG Verifiedbrice
ddab9a2fix(rpc): answer not found to non-owners before parsing moderation requests GPG Verifiedbrice
f8b1e92refactor: drop the unused pending issue state, ListOpen and InboxMergeRequest GPG Verifiedbrice
1486f6drefactor(domain): build approved issues in the domain GPG Verifiedbrice
0284609perf(kvstore): page issues without decoding the whole history GPG Verifiedbrice
17b5f65fix(kvstore): bound the numbering locks GPG Verifiedbrice
b0db7adfix(usecase): refresh the inbox after a rejection GPG Verifiedbrice
03a1ab8Merge branch 'feat/inbox' into feat/issue-form merge GPG Verifiedbrice
0092b37Merge branch 'feat/issues' into feat/inbox merge GPG Verifiedbrice
30f7beafix(rpc): build against the api with merge request notes and reject scope mr:review GPG Verifiedbrice
b5344bffix(usecase): verify the proof of work before any admission check and reserve quota and queue atomically GPG Verifiedbrice
bc78630fix(web): count issue form limits like the server and refresh the challenge after back navigation GPG Verifiedbrice
e687d9cdocs: public issue form and moderation GPG Verifiedbrice
cce8cfafeat(web): public issue form and moderation in the inbox GPG Verifiedbrice
093dc62feat(web): proof of work solver GPG Verifiedbrice
3f9aa10feat(web): untrusted markdown for external issues GPG Verifiedbrice
99db356feat(usecase): allow public issues GPG Verifiedbrice
a26798bfeat(usecase): anonymous issue submission with adaptive proof of work GPG Verifiedbrice
ee8d39cfeat(rpc): serve pending issue moderation and wire it in the forge GPG Verifiedbrice
51f0135feat(usecase): add issue moderation, the form subkeys and the owner-only issue.submitted event GPG Verifiedbrice
2576c64fix(clientlimit): keep the submission limits free of the domain import GPG Verifiedbrice
8d2ab49feat(clientlimit): add the sliding window submission limiter GPG Verifiedbrice
6a3e65dfeat(kvstore): store pending issues, bans and the issue form key GPG Verifiedbrice
dca1fe7feat(ports): add the pending issue, key, ban, submission limiter and moderation ports GPG Verifiedbrice
784ea9ffeat(domain): add pending issues, the issue submitted event and the form limits GPG Verifiedbrice
babd8c2build(deps): use the local ermite-api issue form branch GPG Verifiedbrice
d66b108test(events): owner topic access matrix, token end, bearer refusal, stale index GPG Verifiedbrice
063865bfix(events): deliver repo.updated and repo.deleted to owner watchers and refresh the inbox GPG Verifiedbrice
bc6524cfeat(web): owner inbox page and home button GPG Verifiedbrice
ab38ed2feat(events): owner topic across repositories 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