Follow-up to the CI cache work (#635/#637), sequenced separately so the
runtime-version change carries zero cache variables. node:24 is Active
LTS; node:26 is held until it reaches LTS (Oct 2026) since the Current
line risks node-gyp native-module breakage (better-sqlite3, canvas,
sharp, node-pty compile from source on the musl runner).
Only Dockerfile.ci's base changes; ci.yml/publish.yml comments updated
for accuracy. The ci-base image rebuilds automatically on merge (the
Dockerfile.ci path filter in ci-image.yml).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>