Commite545e575Recorded4 Aug 2026Repositoryfjo

Relock fjo to sigil 0.18.2 and move sigil-mcp to the 0.17 line

Message

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.18

Swapping 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.

Changed
 package.sgl        | 19 +++++++++++++++++--
 sigil.lock         | 36 ++++++++++++++++++------------------
 src/fjo/config.sgl |  2 +-
 3 files changed, 36 insertions(+), 21 deletions(-)
Diff
package.sglmodified
@@ -7,7 +7,7 @@
7
(package
8
name: "fjo"
9
version: "0.2.3"
−10
sigil: "^0.17"
+10
sigil: "^0.18"
11
description: "Forgejo/Codeberg management CLI and MCP server"
12
url: "https://codeberg.org/sigil/fjo"
13
license: "BSD-3-Clause"
@@ -38,8 +38,23 @@
38
secret-env: #{ FORGEJO_TOKEN: #t } })
39
40
dependencies: (list
+41
;; Explicit sigil-lib pin. Two independent reasons, both measured:
+42
;; 1. Without it, sigil-lib is derived transitively and does not track
+43
;; the `sigil:` field, so a relock can silently leave the C runtime
+44
;; behind while `sigil deps install` exits 0.
+45
;; 2. sigil-lib's resolution does NOT respect its declared range: with
+46
;; no explicit pin, a fresh resolve records `ref: "^0.17"` alongside
+47
;; `version: "0.18.2"` in the same lock entry, on any toolchain,
+48
;; while sigil-stdlib in that same resolve correctly stays at 0.17.20.
+49
;; Verify in sigil.lock (the `version:`/`sha:` fields, not `ref:`).
+50
(from-git url: "codeberg:sigil/sigil"
+51
package: "sigil-lib" version: "^0.18")
52
(from-git url: "codeberg:sigil/sigil" package: "sigil-run" version: "^0.17.0")
−42
(from-git url: "codeberg:sigil/sigil-mcp" version: "^0.16")
+53
;; sigil-mcp ^0.17, NOT ^0.16. The 0.16 line now contains BOTH a release
+54
;; requiring the 0.18 runtime (v0.16.5) and one requiring 0.17 (v0.16.6, a
+55
;; deliberate compatibility revert), so ^0.16 no longer determines which
+56
;; runtime you need. The 0.17 line is the unambiguous 0.18-runtime line.
+57
(from-git url: "codeberg:sigil/sigil-mcp" version: "^0.17")
58
(from-git url: "codeberg:sigil/sigil-forgejo" version: "^0.10.0"))
59
60
tasks: (list
sigil.lockmodified
@@ -2,27 +2,27 @@
2
(lock
3
(package name: "sigil-stdlib"
4
url: "codeberg:sigil/sigil"
−5
ref: "^0.17"
−6
sha: "bd2a47b44bff2051073044046e000fd7f0e587ca"
+5
ref: "^0.18"
+6
sha: "7e7c8873d45338a8e892aa3982b6991d9a1fa5a5"
7
package-selector: "sigil-stdlib"
−8
version: "0.17.12")
+8
version: "0.18.2")
+9
(package name: "sigil-lib"
+10
url: "codeberg:sigil/sigil"
+11
ref: "^0.18"
+12
sha: "7e7c8873d45338a8e892aa3982b6991d9a1fa5a5"
+13
package-selector: "sigil-lib"
+14
version: "0.18.2")
15
(package name: "sigil-run"
16
url: "codeberg:sigil/sigil"
17
ref: "^0.17.0"
−12
sha: "bd2a47b44bff2051073044046e000fd7f0e587ca"
+18
sha: "070f133a3524142b4febfd7c287385186b616252"
19
package-selector: "sigil-run"
−14
version: "0.17.12")
−15
(package name: "sigil-lib"
−16
url: "codeberg:sigil/sigil"
−17
ref: "^0.17"
−18
sha: "bd2a47b44bff2051073044046e000fd7f0e587ca"
−19
package-selector: "sigil-lib"
−20
version: "0.17.12")
+20
version: "0.17.20")
21
(package name: "sigil-mcp"
22
url: "codeberg:sigil/sigil-mcp"
−23
ref: "^0.16"
−24
sha: "1a0175939d7841686cad8793ed5faa1d10602351"
−25
version: "0.16.4")
+23
ref: "^0.17"
+24
sha: "be7cf755df13f76b83695d6f3d8af12682470dbd"
+25
version: "0.17.0")
26
(package name: "sigil-forgejo"
27
url: "codeberg:sigil/sigil-forgejo"
28
ref: "^0.10.0"
@@ -61,8 +61,8 @@
61
(package name: "sigil-tls"
62
url: "codeberg:sigil/sigil-tls"
63
ref: "^0.16.0"
−64
sha: "30e8c2a84345dc4d484f5c085daa5bd16fc60fe1"
−65
version: "0.16.3")
+64
sha: "baf05e45ed4090406c2990debadabfcd8253d834"
+65
version: "0.16.4")
66
(package name: "sigil-ansi"
67
url: "codeberg:sigil/sigil-ansi"
68
ref: "^0.16.0"
@@ -81,8 +81,8 @@
81
(package name: "sigil-crypto"
82
url: "codeberg:sigil/sigil-crypto"
83
ref: "^0.16"
−84
sha: "a391c4ed73891ac5dc8a6da98b80a340c03f801f"
−85
version: "0.16.3")
+84
sha: "964eec2fad375834e2b49da454209fabc059ca30"
+85
version: "0.16.4")
86
(package name: "sigil-version"
87
url: "codeberg:sigil/sigil-version"
88
ref: "^0.16.0"
src/fjo/config.sglmodified
@@ -7,7 +7,7 @@
7
(import (sigil core)
8
(sigil string)
9
(sigil process)
−10
(sigil env))
+10
(sigil dotenv))
11
(export fjo-token
12
fjo-base-url
13
fjo-woodpecker-token