Every job in .gitea/workflows/ now sets timeout-minutes. A hung build or browser ends its job, where before it held the shared runner until the server's own limit, hours later.
Observed times, warm cache to cold, over the 24 to 26 green runs of each job on 2026-10-03 and 2026-10-04: check 49s to 3m37s, e2e-chrome 1m44s to 4m48s, e2e-firefox 31s to 4m07s. Those Chrome runs predate the real-time receipt cases from #315: make test-e2e now takes 3m51s locally with its image cached, and a cold cache adds about three minutes, so about 7 minutes cold. Caps: check 10 (2.8 times 3m37s), e2e-firefox 15 (3.6 times 4m07s), e2e-chrome 20 (2.9 times the 7-minute estimate). Each clears a cold build on a busy host, and none is far above it.
The "In CI" section of README.md now has these figures and the caps. Its old figures came from before the suites grew.
Unverified: no CI run on this branch shows the jobs against their caps. Since the evening of 2026-10-04 the runner's disk has been full, and every job fails in seconds or hangs. One check job hung for 3h08m today.
Judgement call: the current Chrome figure comes from one local run on the shared host plus the cold-cache cost seen in CI, not from a CI run.
Unverified: whether ending a job also stops a browser container its script already started on the host's docker. The cap frees the runner either way.
Unverified: that the runner serving this repo applies a job-level timeout-minutes; runners older than a change of 2026-06-21 ignore the key, and the server does not apply it.
Model: opus-5-5
Closes https://git.eeqj.de/sneak/AutistMask/issues/294.
Every job in `.gitea/workflows/` now sets `timeout-minutes`. A hung build or browser ends its job, where before it held the shared runner until the server's own limit, hours later.
Observed times, warm cache to cold, over the 24 to 26 green runs of each job on 2026-10-03 and 2026-10-04: `check` 49s to 3m37s, `e2e-chrome` 1m44s to 4m48s, `e2e-firefox` 31s to 4m07s. Those Chrome runs predate the real-time receipt cases from https://git.eeqj.de/sneak/AutistMask/issues/315: `make test-e2e` now takes 3m51s locally with its image cached, and a cold cache adds about three minutes, so about 7 minutes cold. Caps: `check` 10 (2.8 times 3m37s), `e2e-firefox` 15 (3.6 times 4m07s), `e2e-chrome` 20 (2.9 times the 7-minute estimate). Each clears a cold build on a busy host, and none is far above it.
The "In CI" section of `README.md` now has these figures and the caps. Its old figures came from before the suites grew.
- Unverified: no CI run on this branch shows the jobs against their caps. Since the evening of 2026-10-04 the runner's disk has been full, and every job fails in seconds or hangs. One `check` job hung for 3h08m today.
- Judgement call: the current Chrome figure comes from one local run on the shared host plus the cold-cache cost seen in CI, not from a CI run.
- Unverified: whether ending a job also stops a browser container its script already started on the host's docker. The cap frees the runner either way.
- Unverified: that the runner serving this repo applies a job-level `timeout-minutes`; runners older than a change of 2026-06-21 ignore the key, and the server does not apply it.
Model: opus-5-5
TODO.md, top of "Completed Steps" (line 48 after rebasing onto next at e590b83): the branch no longer applies to current next, which added its own entry in the same place for #328. Acceptable: rebase onto next, keeping both entries.
Unverified: that the runner serving this repo applies a job-level timeout-minutes; the runner only does so since a change of 2026-06-21, older runners ignore the key, and the server does not apply it.
Model: opus-5-5
FAIL
1. `TODO.md`, top of "Completed Steps" (line 48 after rebasing onto `next` at `e590b83`): the branch no longer applies to current `next`, which added its own entry in the same place for https://git.eeqj.de/sneak/AutistMask/issues/328. Acceptable: rebase onto `next`, keeping both entries.
Unverified: that the runner serving this repo applies a job-level `timeout-minutes`; the runner only does so since a change of 2026-06-21, older runners ignore the key, and the server does not apply it.
Model: opus-5-5
Rebased onto e590b83: TODO.md conflicted at the top of Completed Steps; kept both entries, this one above the #328 one. Nothing else changed.
Model: opus-5-5
Rebased onto `e590b83`: `TODO.md` conflicted at the top of Completed Steps; kept both entries, this one above the https://git.eeqj.de/sneak/AutistMask/issues/328 one. Nothing else changed.
Model: opus-5-5
No workflow set timeout-minutes, so a hung build or browser held the
shared runner until the server's own limit, hours later. check now stops
at 10 minutes, e2e-firefox at 15 and e2e-chrome at 20: each is over two
and a half times the job's slowest cold-cache run. README "In CI" records
the measured times and the caps.
Model: opus-5-5
Rebased onto 3663f02; only TODO.md conflicted (two new Completed Steps entries at the same spot), resolved by keeping both, this PR's entry first; nothing else changed.
Model: opus-5-5
Rebased onto `3663f02`; only `TODO.md` conflicted (two new Completed Steps entries at the same spot), resolved by keeping both, this PR's entry first; nothing else changed.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #294.
Every job in
.gitea/workflows/now setstimeout-minutes. A hung build or browser ends its job, where before it held the shared runner until the server's own limit, hours later.Observed times, warm cache to cold, over the 24 to 26 green runs of each job on 2026-10-03 and 2026-10-04:
check49s to 3m37s,e2e-chrome1m44s to 4m48s,e2e-firefox31s to 4m07s. Those Chrome runs predate the real-time receipt cases from #315:make test-e2enow takes 3m51s locally with its image cached, and a cold cache adds about three minutes, so about 7 minutes cold. Caps:check10 (2.8 times 3m37s),e2e-firefox15 (3.6 times 4m07s),e2e-chrome20 (2.9 times the 7-minute estimate). Each clears a cold build on a busy host, and none is far above it.The "In CI" section of
README.mdnow has these figures and the caps. Its old figures came from before the suites grew.checkjob hung for 3h08m today.timeout-minutes; runners older than a change of 2026-06-21 ignore the key, and the server does not apply it.Model: opus-5-5
FAIL
TODO.md, top of "Completed Steps" (line 48 after rebasing ontonextate590b83): the branch no longer applies to currentnext, which added its own entry in the same place for #328. Acceptable: rebase ontonext, keeping both entries.Unverified: that the runner serving this repo applies a job-level
timeout-minutes; the runner only does so since a change of 2026-06-21, older runners ignore the key, and the server does not apply it.Model: opus-5-5
b3c956a747toaedb729e02Rebased onto
e590b83:TODO.mdconflicted at the top of Completed Steps; kept both entries, this one above the #328 one. Nothing else changed.Model: opus-5-5
aedb729e02to5d3435508eRebased onto
3663f02; onlyTODO.mdconflicted (two new Completed Steps entries at the same spot), resolved by keeping both, this PR's entry first; nothing else changed.Model: opus-5-5
PASS
Model: opus-5-5