detached 388d3be

2026-10-19

388d3beMerge 9ca7c686a53fa2b6c5d93929c63e54458ac77df7 into d8e7d5b03a01f5f16f8d49f12a7e132355b40f06 merge ermite
9ca7c68fix(repos): mutate metadata atomically and record approved issue activity GPG Verified2/4brice
32e9fe7fix(web): match loaded lines to a selection by file key, keep the focus on a closing menu, close menus with escape on every page and restore the hunk header contrast GPG Verifiedbrice
4277264feat(web): order the home page by last activity and move repositories up live GPG Verifiedbrice
4fc291efeat(web): move the inbox button of the home page next to the logo, with a mailbox icon and a darker count badge GPG Verifiedbrice
5f6d2c6test(app): refresh the web golden pages for the view menu, the w shortcut and the store script GPG Verifiedbrice
a772c1bfix(web): a selected line range is one block, its title names the whole range and its hidden lines stay selected once loaded GPG Verifiedbrice
502935erefactor(web): drop the Wide button of the diff bar, the w shortcut covers it GPG Verifiedbrice
a1f8e85feat(web): make the wide mode a global w shortcut, set before the first paint, and tighten the merge request header GPG Verifiedbrice
fcc7703feat(web): one merge request card, a diff view menu, a wide diff mode and quieter hunk rows GPG Verifiedbrice
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

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