v0.18.1 e08f000

2026-10-13

e30ca52feat(ci): add ERMITE_CI_POLL_TIMEOUT to shorten the FetchJob long poll GPG Verifiedbrice
eaf4295Merge pull request 'feat(ci): GitHub-shaped contexts, owner URLs, run titles and continue-on-error' (#18) from feat/ci-github-parity into main merge SSH Unverifiedtag v0.8.0bnema
c1a72b4fix(ci): never fail a job on check_run_id overflow, use the ErrTooManyConfigurations sentinel GPG Verifiedbrice
a67d46arefactor(ci): build the push commits once per ref and number check runs per attempt GPG Verifiedbrice
43dcef4fix(web): redirect /<owner>/<rest> unless a repository is named like the owner GPG Verifiedbrice

2026-10-12

3690ef9feat(ci): match GitHub's github and job contexts, push payload and run titles GPG Verifiedbrice
45bfc5bMerge pull request 'fix(cli): explain the missing CI features in the version warning' (#17) from fix/version-ci-features into main merge SSH Unverifiedtag v0.7.0bnema
2e6e03ffix(cli): explain the missing CI features in the version warning GPG Verifiedbrice
075280bMerge pull request 'feat(web): sign in with owner passkeys' (#14) from feat/passkeys into main merge SSH Unverifiedbnema
eca6041test(kvstore): call Delete again when it gives up under contention GPG Verifiedbrice
b4c1e2aMerge origin/main into feat/passkeys merge GPG Verifiedbrice
98d2616Merge pull request 'feat(tokens): branch-limited tokens for agents' (#13) from feat/token-branch-prefixes into main merge SSH Unverifiedbnema
f9ee4b9feat(ci): limit run writes and runner management of branch-limited tokens GPG Verifiedbrice
0651976Merge origin/main into feat/token-branch-prefixes merge GPG Verifiedbrice
9b24d95Merge pull request 'feat(cli): config file with the server URL and a token command' (#12) from feat/cli-config into main merge SSH Unverifiedbnema
c9463fdMerge origin/main into feat/cli-config merge GPG Verifiedbrice
9b35c25Merge pull request 'test(kvstore): accept a conflict from SetRead racing with a repository delete' (#16) from fix/kvstore-delete-race-test into main merge SSH Unverifiedbnema
a358636Merge origin/main into fix/kvstore-delete-race-test merge GPG Verifiedbrice
f3afb66Merge pull request 'feat(ci): GitHub Actions-compatible runs, runners and checks' (#15) from feat/ci-server into main merge SSH Unverifiedbnema
88a7436build(deps): bump ermite-actions to the recorded rules GPG Verifiedbrice
47fa8derefactor(config): leave the default CI retention to the CI use case GPG Verifiedbrice
c31fed8refactor(web): drop the dead rowIsNew placeholder GPG Verifiedbrice
ac92e76docs: document CI in the README GPG Verifiedbrice
081981crefactor: split web/actions.go and move the runner commands (pure move) GPG Verifiedbrice
f1b7a40refactor(kvstore): share one guardRepo between merge requests and CI GPG Verifiedbrice
6d7ddbarefactor(ci): reserve the removed storage fields and type the cancel reason GPG Verifiedbrice
916e849fix(ci): log every failure of the sweep, and test the sweep, the log limit and GetJob GPG Verifiedbrice
cd99c65refactor(web): one helper shapes the log lines of the page, raw feed and live feed GPG Verifiedbrice
7513520refactor(ci): require the owner in CIConfig and use strconv in the ports GPG Verifiedbrice
5b299ebrefactor(config): check the owner name in the app with the domain rules GPG Verifiedbrice
1beb9dbfix(ci): match GitHub's push payload in the github context GPG Verifiedbrice
5e9332cfix(web): count the log pages and the raw log in the per-client stream limit GPG Verifiedbrice
8dbcdb5fix(ci): refuse a merge when the checks of the head are too many to read GPG Verifiedbrice
b7f6252fix(ci): follow waits for lines on a running job and a busy stream revalidates GPG Verifiedbrice
008a3aafix(ci): note heartbeats under the run lock and forget the poll record at the ack GPG Verifiedbrice
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

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