main 1fb2421

history of internal/app/forge.go at main

2026-10-22

1fb2421feat(web): render README videos with native players (!37) SSH Verifiedmain tag v0.36.04/4brice
801147ffeat(web): list running CI runs in the inbox and open it with Shift+I (!28) SSH Verified4/4brice

2026-10-21

d50b7cdfeat(app): wire releases and the blob store, S3 configuration, MinIO compose profile and docs GPG Verifiedbrice
4b10ba7merge: main with issue and merge request links into feat/auto-merge merge GPG Verifiedbrice

2026-10-20

84db480perf(mr): skip auto-merge scans of repositories without a pending auto-merge, read checks once under the merge lock and keep the manual pending-checks error GPG Verifiedbrice
8539d6ffix(repo): serialize merge settings updates with merges GPG Verifiedbrice
ba47d48feat(app): wire the auto-merge evaluator GPG Verifiedbrice
1386983feat(issues): index merge request mentions of issues and close linked issues on merge GPG Verifiedbrice
1427755fix(mirror): sanitize push output, harden SSH options, add mirror events to watch and stable --json output GPG Verifiedbrice
335d134fix(mirror): mark mirrors dirty on merges and default branch changes, validate config before saving and keep manual throttling on coalesced syncs GPG Verifiedbrice
0ebe073feat(cli): add the mirror commands and wire push mirrors into the forge GPG Verifiedbrice

2026-10-19

5344be5merge: hexmove/workflow into chore/hexcheck-v0.4.0 merge GPG Verifiedbrice
a1ec1afrefactor(domain): own the workflow-change rule for job tokens in WorkflowChangeOf GPG Verifiedbrice
c0f84a6refactor(usecase): own repo defaults, disabled workflows, OIDC rotation and issue visibility rules GPG Verifiedbrice
bf27c54feat(mr): per-mode merge checks, signed merge commits and side effects after the response GPG Verifiedbrice
23c66c0feat(mr): background mergeability checks, their Watch event and API field GPG Verifiedbrice
d8e7d5btest(app): give the concurrent push test one receive-pack slot per push GPG Verified8/8brice
cce8cfafeat(web): public issue form and moderation in the inbox 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
974935dfeat(usecase): owner inbox overview across repositories GPG Verifiedbrice
a5d6827feat(rpc): serve IssueService and the issues setting, wire issues GPG Verifiedbrice

2026-10-18

0039612feat(ci): disable, enable and list workflows per repository GPG Verifiedtag v0.27.0brice
df1db36feat: signature badges on merge request commits (#73) SSH Unverifiedtag v0.26.0brice
94ae608feat: verified commit signatures (SSH and OpenPGP) with protocol badges (#72) SSH Unverifiedbrice

2026-10-17

ab8e178feat(web): UI polish, auto sign-in from the link, installable app (#46) SSH Unverifiedtag v0.17.0brice

2026-10-16

81486c6feat(ci): artifacts v4 storage and API (#39) SSH Unverifiedbrice
cc3aa02feat(ci): OIDC ID tokens for CI jobs (#43) SSH Unverifiedbrice

2026-10-15

8a6cfecfeat(ci): workflow_dispatch, schedule and workflow_run triggers (#34) SSH Unverifiedtag v0.15.0brice
815fb98feat(ci): pull_request runs from merge requests (#32) SSH Unverifiedtag v0.14.0brice
c11af01feat(ci): reusable workflows (#33) SSH Unverifiedbrice

2026-10-14

dccd128feat(ci): job token permissions and workflow push guard (#29) SSH Unverifiedtag v0.12.0brice
0633e44feat(ci): secrets, variables, environments and run trust (#28) SSH Unverifiedtag v0.11.0brice

2026-10-13

19fda0cfeat(ci): store and show annotations and job summaries GPG Verifiedbrice
3d22057fix(ci): resolve actions of other repositories on behalf of the pusher, bind archive tokens to a commit GPG Verifiedbrice
5b66afcfeat(ci): serve the owner's git URLs and the REST subset the actions call GPG Verifiedbrice
e30ca52feat(ci): add ERMITE_CI_POLL_TIMEOUT to shorten the FetchJob long poll GPG Verifiedbrice

2026-10-12

b4c1e2aMerge origin/main into feat/passkeys merge GPG Verifiedbrice
5fbf954feat(ci): serve RunnerService and RunService, wire CI into the server GPG Verifiedbrice
21bc4ddfeat(app): wire passkeys when the public URL allows them GPG Verifiedbrice
582b620refactor(web): read and write through the ports instead of in-process Connect clients GPG Verifiedbrice
4738f20refactor: split use cases into internal/usecase and the CLI and composition root into internal/app 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