Commitd9006bc4Recorded4 Aug 2026Repositorytally

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

Message

Moves tally 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 two files. 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 parses arguments. tally has no --version, so this proves the entry module LOADS but not which runtime it linked.

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           | 40 ++++++++++++++++++++--------------------
 src/tally/config.sgl |  2 +-
 src/tally/main.sgl   |  2 +-
 4 files changed, 39 insertions(+), 24 deletions(-)
Diff
package.sglmodified
@@ -10,7 +10,7 @@
10
description: "Personal finance management CLI and MCP server"
11
url: "https://codeberg.org/sigil/tally"
12
license: "BSD-3-Clause"
−13
sigil: "^0.17"
+13
sigil: "^0.18"
14
authors: (list "David Wilson <david@daviwil.com>")
15
16
entry: '(tally main)
@@ -37,10 +37,25 @@
37
secret-env: #{ WISE_API_TOKEN: #t } })
38
39
dependencies: (list
+40
;; Explicit sigil-lib pin. Two independent reasons, both measured:
+41
;; 1. Without it, sigil-lib is derived transitively and does not track
+42
;; the `sigil:` field, so a relock can silently leave the C runtime
+43
;; behind while `sigil deps install` exits 0.
+44
;; 2. sigil-lib's resolution does NOT respect its declared range: with
+45
;; no explicit pin, a fresh resolve records `ref: "^0.17"` alongside
+46
;; `version: "0.18.2"` in the same lock entry, on any toolchain,
+47
;; while sigil-stdlib in that same resolve correctly stays at 0.17.20.
+48
;; Verify in sigil.lock (the `version:`/`sha:` fields, not `ref:`).
+49
(from-git url: "codeberg:sigil/sigil"
+50
package: "sigil-lib" version: "^0.18")
51
(from-git url: "codeberg:sigil/sigil" package: "sigil-run" version: "^0.17.0")
52
(from-git url: "codeberg:sigil/sigil-json" version: "^0.16")
53
(from-git url: "codeberg:sigil/sigil-log" version: "^0.16")
−43
(from-git url: "codeberg:sigil/sigil-mcp" version: "^0.16")
+54
;; sigil-mcp ^0.17, NOT ^0.16. The 0.16 line now contains BOTH a release
+55
;; requiring the 0.18 runtime (v0.16.5) and one requiring 0.17 (v0.16.6, a
+56
;; deliberate compatibility revert), so ^0.16 no longer determines which
+57
;; runtime you need. The 0.17 line is the unambiguous 0.18-runtime line.
+58
(from-git url: "codeberg:sigil/sigil-mcp" version: "^0.17")
59
(from-git url: "codeberg:sigil/sigil-args" version: "^0.16")
60
(from-git url: "codeberg:sigil/sigil-wise" version: "^0.10")
61
(from-git url: "codeberg:sigil/sigil-ledger" version: "^0.10")
sigil.lockmodified
@@ -2,22 +2,22 @@
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-json"
22
url: "codeberg:sigil/sigil-json"
23
ref: "^0.16"
@@ -30,9 +30,9 @@
30
version: "0.16.0")
31
(package name: "sigil-mcp"
32
url: "codeberg:sigil/sigil-mcp"
−33
ref: "^0.16"
−34
sha: "1a0175939d7841686cad8793ed5faa1d10602351"
−35
version: "0.16.4")
+33
ref: "^0.17"
+34
sha: "be7cf755df13f76b83695d6f3d8af12682470dbd"
+35
version: "0.17.0")
36
(package name: "sigil-args"
37
url: "codeberg:sigil/sigil-args"
38
ref: "^0.16"
@@ -51,9 +51,9 @@
51
(package name: "sigil-test"
52
url: "codeberg:sigil/sigil"
53
ref: "^0.17"
−54
sha: "bd2a47b44bff2051073044046e000fd7f0e587ca"
+54
sha: "070f133a3524142b4febfd7c287385186b616252"
55
package-selector: "sigil-test"
−56
version: "0.17.12")
+56
version: "0.17.20")
57
(package name: "sigil-nrepl"
58
url: "codeberg:sigil/sigil-nrepl"
59
ref: "^0.16"
@@ -77,8 +77,8 @@
77
(package name: "sigil-tls"
78
url: "codeberg:sigil/sigil-tls"
79
ref: "^0.16.0"
−80
sha: "30e8c2a84345dc4d484f5c085daa5bd16fc60fe1"
−81
version: "0.16.3")
+80
sha: "baf05e45ed4090406c2990debadabfcd8253d834"
+81
version: "0.16.4")
82
(package name: "sigil-ansi"
83
url: "codeberg:sigil/sigil-ansi"
84
ref: "^0.16.0"
@@ -107,6 +107,6 @@
107
(package name: "sigil-crypto"
108
url: "codeberg:sigil/sigil-crypto"
109
ref: "^0.16"
−110
sha: "a391c4ed73891ac5dc8a6da98b80a340c03f801f"
−111
version: "0.16.3")
+110
sha: "964eec2fad375834e2b49da454209fabc059ca30"
+111
version: "0.16.4")
112
)
src/tally/config.sglmodified
@@ -8,7 +8,7 @@
8
(import (sigil core)
9
(sigil struct)
10
(sigil process)
−11
(sigil env))
+11
(sigil dotenv))
12
(export tally-config
13
tally-config?
14
tally-config-wise-token
src/tally/main.sglmodified
@@ -8,7 +8,7 @@
8
(sigil string)
9
(sigil process)
10
(sigil args)
−11
(sigil env)
+11
(sigil dotenv)
12
(sigil log)
13
(sigil meta)
14
(sigil mcp server)