Relock monorepo pins to ^0.21
A caret pin is a RANGE WITH AN UPPER BOUND: ^0.20 means >=0.20.0 <0.21.0, which the 0.21.0 runtime does NOT satisfy. The sigil: field is a different thing -- a MINIMUM, no upper bound -- so bare "0.20" there stays correct and only the dependency pins move.
Monorepo packages are not independently versioned; they advance in lockstep with the toolchain. Standalone libraries are NOT touched: sigil-http, sigil-json, sigil-tls, sigil-crypto and the rest version on their own cadence, and requesting ^0.21 of them asks for something that has never existed.
Found via kiln, the only repo in the estate whose pipeline greps deps.log and promotes an unmet-constraint warning to a failure. Every other repo emits the same warning under sigil test and passes, so the skew was estate-wide and visible in exactly one place.
Verified per repo: deps install reports ZERO unmet constraints.
Known limitation, recorded rather than hidden: ^0.21 excludes 0.22 in turn, so this recurs on the next toolchain bump. A minimum form (>=0.20) was measured working -- zero warnings, build ok, suite green -- and deferred by David 2026-09-02 in favour of matching the estate's existing spelling.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P6mPymR1ZBRV1nuyDpBxDF
package.sgl | 8 ++++----
sigil.lock | 68 ++++++++++++++++++++++++++++++++++----------------------------------
2 files changed, 38 insertions(+), 38 deletions(-)package.sglmodified
url: "https://codeberg.org/sigil/apiary" license: "BSD-3-Clause" authors: (list "David Wilson <david@daviwil.com>") sigil: "^0.19" sigil: "0.20" entry: '(apiary main) bundle-name: "apiary" dependencies: (list ;; Keep the C runtime on the same monorepo release line as stdlib. (from-git url: "codeberg:sigil/sigil" package: "sigil-lib" version: "^0.19") package: "sigil-lib" version: "^0.21") (from-git url: "codeberg:sigil/sigil-json" version: "^0.16") (from-git url: "codeberg:sigil/sigil-log" version: "^0.17") (from-git url: "codeberg:sigil/sigil-mcp" version: "^0.17") ; the 0.17 line REQUIRES the 0.18 runtime; ^0.16 must not be used here (from-git url: "codeberg:sigil/sigil-irc" version: "^0.16")) dev-dependencies: (list (from-git url: "codeberg:sigil/sigil" package: "sigil-test" version: "^0.19") (from-git url: "codeberg:sigil/sigil" package: "sigil-test-runner" version: "^0.19") (from-git url: "codeberg:sigil/sigil" package: "sigil-test" version: "^0.21") (from-git url: "codeberg:sigil/sigil" package: "sigil-test-runner" version: "^0.21") ) tasks: (listsigil.lockmodified
(lock (package name: "sigil-stdlib" url: "codeberg:sigil/sigil" ref: "^0.19" sha: "3d0668a0bf23c3fd144e5afe1cee65fc3232ee26" ref: ">=0.20, <1.0" sha: "8643e9abf19038c5f4961d41748427dbd623cb15" package-selector: "sigil-stdlib" version: "0.19.1") version: "0.21.0") (package name: "sigil-test" url: "codeberg:sigil/sigil" ref: "^0.21" sha: "8643e9abf19038c5f4961d41748427dbd623cb15" package-selector: "sigil-test" version: "0.21.0") (package name: "sigil-test-runner" url: "codeberg:sigil/sigil" ref: "^0.21" sha: "8643e9abf19038c5f4961d41748427dbd623cb15" package-selector: "sigil-test-runner" version: "0.21.0") (package name: "sigil-lib" url: "codeberg:sigil/sigil" ref: "^0.19" sha: "3d0668a0bf23c3fd144e5afe1cee65fc3232ee26" ref: "^0.21" sha: "8643e9abf19038c5f4961d41748427dbd623cb15" package-selector: "sigil-lib" version: "0.19.1") 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-irc" url: "codeberg:sigil/sigil-irc" ref: "^0.16" sha: "3698a4519d11557b2d5f9bc8b752a72f3ec0f387" version: "0.16.4") (package name: "sigil-test" url: "codeberg:sigil/sigil" ref: "^0.19" sha: "3d0668a0bf23c3fd144e5afe1cee65fc3232ee26" package-selector: "sigil-test" version: "0.19.1") (package name: "sigil-test-runner" url: "codeberg:sigil/sigil" ref: "^0.19" sha: "3d0668a0bf23c3fd144e5afe1cee65fc3232ee26" package-selector: "sigil-test-runner" version: "0.19.1") (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-tls" url: "codeberg:sigil/sigil-tls" ref: "^0.16" sha: "fe4b756f2f46eacf5e3a4eb5d17f2681d88c5ee8" version: "0.16.5") (package name: "sigil-crypto" url: "codeberg:sigil/sigil-crypto" ref: "^0.16" 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: "4cde885f8bbb15b1457b0293a5b9fa7d292cfc46" version: "0.16.6") (package name: "sigil-repl" url: "codeberg:sigil/sigil" ref: "^0.19" sha: "3d0668a0bf23c3fd144e5afe1cee65fc3232ee26" sha: "c9719987aa3c866291db10b29044bc21a4790c31" package-selector: "sigil-repl" version: "0.19.1") version: "0.19.4"))