fix: keep multicall MCP dependencies deterministic

ober

6a5230800b3599147f04bd5b1493bc996047506a

diff --git a/Makefile b/Makefile
index e2cc679..eb12d0a 100644
--- a/Makefile
+++ b/Makefile
@@ -743,11 +743,11 @@ jerboa-smoke: jerboa
 
 # Install the native multicall binary + jmcp/jlsp symlinks into PREFIX/bin.
 # Defaults to ~/.local/bin; override e.g. `make install PREFIX=/usr/local`.
-# Copies what `make jerboa` produced in dist/ (run that first).
+# Rebuilds and smoke-tests all multicall modes before copying dist/jerboa.
 PREFIX ?= $(HOME)/.local
 BINDIR ?= $(PREFIX)/bin
 .PHONY: install
-install:
+install: jerboa-smoke
 	@test -x "$(CURDIR)/dist/jerboa" || { echo "ERROR: dist/jerboa not built — run 'make jerboa' first" >&2; exit 1; }
 	@mkdir -p "$(BINDIR)"
 	@# Use ditto on macOS to preserve metadata (critical for code signing)
diff --git a/mcp/server.ss b/mcp/server.ss
index 81fbe9d..7a26092 100644
--- a/mcp/server.ss
+++ b/mcp/server.ss
@@ -15,7 +15,7 @@
         (std security errors)
         (std port-position)
         (std misc string)
-        (only (std pkg util) sha256-hex-of-bytevector))
+        (only (std crypto sha256-pure) sha256-hex))
 
 (def server-name "jerboa-mcp")
 (def server-version "0.2.4")
@@ -11563,7 +11563,7 @@
 (def (ffi-abi-manifest-payload module-records)
   (let* ([symbols (ffi-abi-all-symbols module-records)]
          [digest-input (string-join symbols "\n")]
-         [digest (sha256-hex-of-bytevector (string->utf8 digest-input))])
+         [digest (sha256-hex (string->utf8 digest-input))])
     (jhash "schema" "jerboa-ffi-abi-manifest/v1"
            "version" 1
            "module_count" (length module-records)