Relock fjo to sigil 0.18.2 and move sigil-mcp to the 0.17 line
Moves fjo onto the 0.18.2 runtime and off the sigil-mcp 0.16 line.
The 0.16 line now contains BOTH a release requiring the 0.18 runtime (v0.16.5) and one requiring 0.17 (v0.16.6, a deliberate compatibility revert), so ^0.16 no longer determines which runtime you need, and which end breaks you depends on your own runtime. The 0.17 line is the unambiguous 0.18-runtime line.
Adds an explicit sigil-lib ^0.18 pin. Without it sigil-lib is derived transitively and does not track the sigil: field, so a relock can silently leave the C runtime behind while sigil deps install exits 0.
Also renames the (sigil env) import to (sigil dotenv) in src/fjo/config.sgl. Sigil 0.18 renamed the stdlib module and REUSED the old name for an unrelated package-environment library, so the rename is the fix rather than a new dependency. The pin is declared FIRST in the dependency list, and that position is load-bearing: sigil deps install is order-dependent. Declared after sigil-run ^0.17.0, sigil-run resolves first, pulls sigil-lib in as a workspace member at 0.17.x, and the later stricter ^0.18 is rejected rather than unified:
Error: Version conflict for sigil-lib
Installed: 0.17.20
Required: ^0.18Swapping the two lines, changing nothing else, resolves cleanly. Note sigil-run 0.17.20 and sigil-lib 0.18.2 then coexist in one lock, so nothing needed to unify in the first place.
Verified: the binary starts and prints its banner. fjo has no --version, so this proves the entry module LOADS but not which runtime it linked. fjo has no test files at all.
Pre-existing and NOT addressed here: sigil test cannot run this package. It fails with "has native code but sigil-test is not in dependencies". Confirmed pre-existing by running the suite on the unmodified checkout under the original 0.17.12 toolchain, where it fails identically.
Build and verify only. The running server is untouched.
package.sgl | 19 +++++++++++++++++--
sigil.lock | 36 ++++++++++++++++++------------------
src/fjo/config.sgl | 2 +-
3 files changed, 36 insertions(+), 21 deletions(-)package.sglmodified
(package name: "fjo" version: "0.2.3" sigil: "^0.17" sigil: "^0.18" description: "Forgejo/Codeberg management CLI and MCP server" url: "https://codeberg.org/sigil/fjo" license: "BSD-3-Clause" secret-env: #{ FORGEJO_TOKEN: #t } }) dependencies: (list ;; Explicit sigil-lib pin. Two independent reasons, both measured: ;; 1. Without it, sigil-lib is derived transitively and does not track ;; the `sigil:` field, so a relock can silently leave the C runtime ;; behind while `sigil deps install` exits 0. ;; 2. sigil-lib's resolution does NOT respect its declared range: with ;; no explicit pin, a fresh resolve records `ref: "^0.17"` alongside ;; `version: "0.18.2"` in the same lock entry, on any toolchain, ;; while sigil-stdlib in that same resolve correctly stays at 0.17.20. ;; Verify in sigil.lock (the `version:`/`sha:` fields, not `ref:`). (from-git url: "codeberg:sigil/sigil" package: "sigil-lib" version: "^0.18") (from-git url: "codeberg:sigil/sigil" package: "sigil-run" version: "^0.17.0") (from-git url: "codeberg:sigil/sigil-mcp" version: "^0.16") ;; sigil-mcp ^0.17, NOT ^0.16. The 0.16 line now contains BOTH a release ;; requiring the 0.18 runtime (v0.16.5) and one requiring 0.17 (v0.16.6, a ;; deliberate compatibility revert), so ^0.16 no longer determines which ;; runtime you need. The 0.17 line is the unambiguous 0.18-runtime line. (from-git url: "codeberg:sigil/sigil-mcp" version: "^0.17") (from-git url: "codeberg:sigil/sigil-forgejo" version: "^0.10.0")) tasks: (listsigil.lockmodified
(lock (package name: "sigil-stdlib" url: "codeberg:sigil/sigil" ref: "^0.17" sha: "bd2a47b44bff2051073044046e000fd7f0e587ca" ref: "^0.18" sha: "7e7c8873d45338a8e892aa3982b6991d9a1fa5a5" package-selector: "sigil-stdlib" version: "0.17.12") version: "0.18.2") (package name: "sigil-lib" url: "codeberg:sigil/sigil" ref: "^0.18" sha: "7e7c8873d45338a8e892aa3982b6991d9a1fa5a5" package-selector: "sigil-lib" version: "0.18.2") (package name: "sigil-run" url: "codeberg:sigil/sigil" ref: "^0.17.0" sha: "bd2a47b44bff2051073044046e000fd7f0e587ca" sha: "070f133a3524142b4febfd7c287385186b616252" package-selector: "sigil-run" version: "0.17.12") (package name: "sigil-lib" url: "codeberg:sigil/sigil" ref: "^0.17" sha: "bd2a47b44bff2051073044046e000fd7f0e587ca" package-selector: "sigil-lib" version: "0.17.12") version: "0.17.20") (package name: "sigil-mcp" url: "codeberg:sigil/sigil-mcp" ref: "^0.16" sha: "1a0175939d7841686cad8793ed5faa1d10602351" version: "0.16.4") ref: "^0.17" sha: "be7cf755df13f76b83695d6f3d8af12682470dbd" version: "0.17.0") (package name: "sigil-forgejo" url: "codeberg:sigil/sigil-forgejo" ref: "^0.10.0" (package name: "sigil-tls" url: "codeberg:sigil/sigil-tls" ref: "^0.16.0" sha: "30e8c2a84345dc4d484f5c085daa5bd16fc60fe1" version: "0.16.3") sha: "baf05e45ed4090406c2990debadabfcd8253d834" version: "0.16.4") (package name: "sigil-ansi" url: "codeberg:sigil/sigil-ansi" ref: "^0.16.0" (package name: "sigil-crypto" url: "codeberg:sigil/sigil-crypto" ref: "^0.16" sha: "a391c4ed73891ac5dc8a6da98b80a340c03f801f" version: "0.16.3") sha: "964eec2fad375834e2b49da454209fabc059ca30" version: "0.16.4") (package name: "sigil-version" url: "codeberg:sigil/sigil-version" ref: "^0.16.0"src/fjo/config.sglmodified
(import (sigil core) (sigil string) (sigil process) (sigil env)) (sigil dotenv)) (export fjo-token fjo-base-url fjo-woodpecker-token