Relock onto sigil 0.20 and drop the caret sigil: field
courier's CI failure was NOT a stale worker cache, which is what t-4182b8 and then t-e71594 claimed. It was this repo's own lock being behind the runner.
Measured after the golden image was rebaked onto sigil 0.21.0:
- courier, declaring
sigil: "^0.19"and never relocked, failed run 237 with 6 LOAD ERROR / invalid native function index -- byte-identical counts to run 204 on the OLD image. - sigil-wise, declaring
sigil: "0.20"and relocked today, PASSED on the same new image in the same window.
So the runtime moved forward and this repo's pinned artifacts did not. invalid native function index is a native-function-table mismatch, and it points at whichever side is behind -- which was never the worker.
The mechanism findings in t-e71594 still hold: runners are 196 KiB overlays over a read-only golden image, discarded per lease, so the baked deps genuinely cannot be purged. What was wrong was the CONCLUSION drawn from them, that a re-bake was the only possible fix. The re-bake moved the runtime further from this repo's pins and the failure reproduced exactly.
The sigil: field also carried the caret spelling deprecated since 2026-08-25; it declares a MINIMUM, not a range. Suite: 120 passed from a clean tree.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P6mPymR1ZBRV1nuyDpBxDF
package.sgl | 2 +-
sigil.lock | 70 +++++++++++++++++++++++++++++++++++-----------------------------------
2 files changed, 36 insertions(+), 36 deletions(-)package.sglmodified
url: "https://codeberg.org/sigil/courier" license: "BSD-3-Clause" authors: (list "David Wilson <david@daviwil.com>") sigil: "^0.19" sigil: "0.20" entry: '(courier main) bundle-name: "courier"sigil.lockmodified
(lock (package name: "sigil-stdlib" url: "codeberg:sigil/sigil" ref: "^0.19" sha: "b99b8f2dd82e7ff7465c3d49a1f81250f2d00007" ref: ">=0.20, <1.0" sha: "8643e9abf19038c5f4961d41748427dbd623cb15" package-selector: "sigil-stdlib" version: "0.19.0") version: "0.21.0") (package name: "sigil-test" url: "codeberg:sigil/sigil" ref: "^0.19" sha: "8643e9abf19038c5f4961d41748427dbd623cb15" package-selector: "sigil-test" version: "0.21.0") (package name: "sigil-test-runner" url: "codeberg:sigil/sigil" ref: "^0.19" sha: "8643e9abf19038c5f4961d41748427dbd623cb15" package-selector: "sigil-test-runner" version: "0.21.0") (package name: "sigil-lib" url: "codeberg:sigil/sigil" ref: "^0.19" sha: "b99b8f2dd82e7ff7465c3d49a1f81250f2d00007" sha: "8643e9abf19038c5f4961d41748427dbd623cb15" package-selector: "sigil-lib" version: "0.19.0") version: "0.21.0") (package name: "sigil-json" url: "codeberg:sigil/sigil-json" ref: "^0.16" (package name: "sigil-mcp" url: "codeberg:sigil/sigil-mcp" ref: "^0.17" sha: "9a315236f4914afb01252323babcbbfd7d49a42d" version: "0.17.1") sha: "fc799460b2d0f431976cf4514c6cf2d459e6bcc0" version: "0.17.5") (package name: "sigil-yaml" url: "codeberg:sigil/sigil-yaml" ref: "^0.9.1" ref: "^0.10.0" sha: "ad6aa63876f2bc53eac5f7db4c124a9ec95e0bec" version: "0.10.6") (package name: "sigil-test" url: "codeberg:sigil/sigil" ref: "^0.19" sha: "b99b8f2dd82e7ff7465c3d49a1f81250f2d00007" package-selector: "sigil-test" version: "0.19.0") (package name: "sigil-test-runner" url: "codeberg:sigil/sigil" ref: "^0.19" sha: "b99b8f2dd82e7ff7465c3d49a1f81250f2d00007" package-selector: "sigil-test-runner" version: "0.19.0") (package name: "sigil-crypto" url: "codeberg:sigil/sigil-crypto" ref: "^0.16.0" sha: "debba4462b7ff4de143db9e0792b8606fdc455bc" version: "0.16.5") (package name: "sigil-sqlite" url: "codeberg:sigil/sigil-sqlite" ref: "^0.16.0" sha: "569ef1063dda8f5989968644af31fc09c64b4bfe" version: "0.16.3") (package name: "sigil-nrepl" url: "codeberg:sigil/sigil-nrepl" ref: "^0.17.1" (package name: "sigil-http" url: "codeberg:sigil/sigil-http" ref: "^0.18.3" sha: "23d647f1c782e7f617ac1e8c537744f260b10bb6" version: "0.18.4") (package name: "sigil-crypto" url: "codeberg:sigil/sigil-crypto" ref: "^0.16.0" sha: "964eec2fad375834e2b49da454209fabc059ca30" version: "0.16.4") (package name: "sigil-sqlite" url: "codeberg:sigil/sigil-sqlite" ref: "^0.16.0" sha: "3d441fb32a216aaf99d0e2732bef5877e91d5d48" version: "0.16.2") sha: "0b4617ac000d6f3ed9f3d0906e6b746ad995ea03" version: "0.18.5") (package name: "sigil-repl" url: "codeberg:sigil/sigil" ref: "^0.19" sha: "b99b8f2dd82e7ff7465c3d49a1f81250f2d00007" sha: "c9719987aa3c866291db10b29044bc21a4790c31" package-selector: "sigil-repl" version: "0.19.0") version: "0.19.4") (package name: "sigil-tls" url: "codeberg:sigil/sigil-tls" ref: "^0.16.5" sha: "fe4b756f2f46eacf5e3a4eb5d17f2681d88c5ee8" version: "0.16.5") sha: "4cde885f8bbb15b1457b0293a5b9fa7d292cfc46" version: "0.16.6"))