What this changes
- Run logs stream from the runner over the same SSH channel that leases the job, are stored per attempt, and can be tailed in the browser while a job is still running. Steps on the run page are accordions, and a step that is still waiting no longer looks finished.
- The change page polls only the regions whose status can change, so a poll cannot replace a form the reader is typing in.
- The issue picker on a change stays open across sidebar polls, finds issues by title, number, or id, and lists the linked issues in their own section.
- The runs tab now lists every run instead of a fixed window of 100, shows a log link only when a log exists, and pages through history with the status filter kept on each page link.
- A running job has its own status colour, so it no longer looks like a job that already succeeded under the Everforest theme.
Why
CI history was moving from the metadata branch to runs.db and from a single log
object to per-attempt logs; the browser surface needed to follow it. While that
landed, the runs list kept asking for fields the run no longer had, which
truncated the page after the first row, and the fixed 100-row window made older
history unreachable.
Checks
vole workflow checkvole workflow run verify(format, vet, build, govulncheck, packages, links, full test suite)- Checked the runs page on the development instance: 25 rows per page, a pager that reports the full count, and status filters that keep their page links.