Restored forward delivery after the worker NVMe recovery and reduced repeat congestion risk without adding runners or paid capacity.
database is locked errors in five minutes. No new lock errors were observed after 09:00 UTC.Merged to dev:
fa7a99a2): component-aware validation, protected rust-delivery routing, and superseded validation/deployment work reported as a non-failure outcome. Also repaired the REQ-0161 database fixture.a46a68e7): CPU scheduling weights of 3 CPUs for each validation runner and 5 CPUs for the delivery runner, with no CPU limits so idle capacity remains borrowable. Also made the catalog-process fixture deterministic under overlayfs contention.c715f8aa): aligned the repository runner manifest with recovered cache epoch 2959 before live reconciliation.cefb1d52): maintenance sidecars now handle TERM/INT so idle pod updates do not consume the full 1230-second job-safety grace period.Applied the repository-managed Rust runner pool manifest in namespace gitea during an idle window. Active runner labels and CPU requests are:
drg-k8s-rust-runner-1: rust-validation, 3 CPUs requested.drg-k8s-rust-runner-2: rust-validation, 3 CPUs requested.drg-k8s-rust-runner-3: rust-delivery, 5 CPUs requested.All three replacement pods became Ready and all three active runner registrations reported online and idle. The retired rust-large transition label was removed. The storage-maintenance ConfigMap was then updated with prompt termination handling.
a46a68e73f534405716ed3e0a2bd1b2213824179.dev-a46a68e73f53 images.https://dev.codecartography.dev/pkg/build-revision.txt returned the full exact revision with HTTP 200; the development root returned HTTP 200.current=false rather than adding a synthetic validation failure.Revert the relevant repository commits and apply the reverted repository-managed manifests during an idle runner window. Preserve cache epoch 2959 or the then-current storage-guard epoch. Do not reduce the delivery lane or force-delete a runner with an active Actions container.
Gitea still uses a large SQLite database in rollback-journal mode. The admission and lane controls reduce write bursts and wasted work, but a future extreme replay can still expose SQLite write contention. Treat database migration or journal-mode changes as a separately reviewed platform change.
The Gitea Actions overview reads workflow definitions from the repository default branch. Although live dev jobs and all six runners were healthy, main still declared the retired rust-large label, so the overview correctly warned that no online runner matched that stale definition.
46303696) updated default-branch workflow labels to rust-validation and rust-delivery and updated the capacity matrix.1c1ceb95) added an explicit CI-only catch-up guard. Its main run classified successfully and skipped every application build and rollout.ubuntu-latest, rust-validation, and rust-delivery; each has an online matching instance runner. No rust-large reference remains in .gitea.The Gitea Actions overview reads workflow definitions from the repository default branch. Although live dev jobs and all six runners were healthy, main still declared the retired rust-large label, so the overview correctly warned that no online runner matched that stale definition.
46303696) updated default-branch workflow labels to rust-validation and rust-delivery and updated the capacity matrix.1c1ceb95) added an explicit CI-only catch-up guard. Its main run classified successfully and skipped every application build and rollout.ubuntu-latest, rust-validation, and rust-delivery; each has an online matching instance runner. No rust-large reference remains in .gitea.8fee7263) updated the exact governed-dispatch contract assertion for the CI-only guard. Its source revision passed 1,341 Rust tests plus native and WASM release builds; the main run used [skip-deploy] and skipped every application build and rollout.