MCP verifier pairs source launcher with bundled library cache and falsely requires a Chez build #93

Closed
opened 2026-09-24 15:21:20 -04:00 by ober · 0 comments
Owner

Problem

jerboa_verify fails runtime preflight despite a working installed self-contained Jerboa multicall binary. It selects the source checkout's bin/jerboa shell launcher and supplies an extracted jerbuild library cache as JERBOA_HOME. That launcher expects a source/build-tree layout (VERSION and .chez/bin/scheme), which the extracted library cache does not provide.

The resulting advice to run make chez is inappropriate for this installed-binary workflow. No separate Jerboa object-code tree or Chez installation has been demonstrated necessary. In this incident, the misleading diagnostic was incorrectly promoted by an agent into a user-facing “restore the Jerboa build toolchain/cache” blocker.

Environment and reproduction

Observed 2026-09-24 on macOS:

  • Installed executable: /Users/user/.local/bin/jerboa, reporting jerboa 0.13.1 (multicall: jerboa/jmcp/jlsp/jerbuild/jpkg) and bundled Chez runtime 10.4.0.
  • /Users/user/.local/bin/jerbuild is a symlink to jerboa.
  • Source checkout launcher: /Users/user/mine/jerboa/bin/jerboa (a shell script, a different entry point from the installed executable).
  • Extracted library cache hash: 567e2d4d1d494f8ebe8bf11bab47c622c39c36e2926a0bcca520c7ba619f3c11.
  • Running MCP server build/version was not independently established; installed executable version alone does not establish it.

Invoke MCP jerboa_verify (client tool name mcp__jerboa__jerboa_verify):

{
  "code": "(import (jerboa prelude))\n(display (+ 20 22))\n(newline)",
  "project_path": "/Users/user/work/jerboa-wormhole-conduit"
}

Returned isError: true, completion status failed, exit status 1. Diagnostic excerpt:

Jerboa CLI runtime unavailable: /Users/user/mine/jerboa/bin/jerboa
Set JERBOA_MCP_JERBOA_PATH to an executable Jerboa CLI.
/Users/user/mine/jerboa/bin/jerboa: line 19: /Users/user/.cache/jerbuild/567e2d4d1d494f8ebe8bf11bab47c622c39c36e2926a0bcca520c7ba619f3c11/VERSION: No such file or directory
Error: Chez Scheme not found at /Users/user/.cache/jerbuild/567e2d4d1d494f8ebe8bf11bab47c622c39c36e2926a0bcca520c7ba619f3c11/.chez/bin/scheme
Run 'make chez' from /Users/user/.cache/jerbuild/567e2d4d1d494f8ebe8bf11bab47c622c39c36e2926a0bcca520c7ba619f3c11 to build the repo-local Scheme.

In the same project directory, the installed toolchain successfully executes the same program:

printf '%s\n' '(import (jerboa prelude))' '(display (+ 20 22))' '(newline)' \
  | /Users/user/.local/bin/jerbuild exec -

Result: 42, exit status 0. This establishes a working bundled runtime and prelude import; it is not a claim that the entire Conduit application has been built or verified by this smoke check.

Cause supported by the evidence

The selected shell launcher sets SCHEME to $JERBOA_HOME/.chez/bin/scheme by default and reads $JERBOA_HOME/VERSION. Its error paths resolve inside the extracted library cache. This demonstrates a launcher/home-layout mismatch. The precise MCP selection precedence and whether configuration or default discovery selected that launcher still need investigation.

Requested fix and regression coverage

  1. Make MCP runtime discovery use the installed self-contained Jerboa/jerbuild entry points correctly. Keep source-checkout launchers and extracted bundled-library directories distinct.
  2. Avoid pairing a source launcher with an extracted library cache as its source/build home. Report the selected executable and relevant environment when preflight fails.
  3. Diagnose this as a launcher/environment mismatch; do not direct installed-binary users to build Chez or supply Jerboa object code.
  4. Add a regression with only the shipped binary and its symlinks available, without a separate Chez installation or Jerboa build tree. Verify MCP syntax/expansion and the supported compilation paths.
  5. Add a case where a source checkout is discoverable alongside the installed binary and an extracted library cache, reproducing this conflicting selection.

Direct jerbuild exec - is a verified workaround for the smoke program. Changing JERBOA_MCP_JERBOA_PATH has not yet been tested as a complete MCP workaround.

Related closed issue: #53 (MCP runtime discovery and misleading repair advice). This report isolates a reproduced source-launcher/extracted-cache mismatch; it does not establish that the same implementation defect caused both incidents.

## Problem `jerboa_verify` fails runtime preflight despite a working installed self-contained Jerboa multicall binary. It selects the source checkout's `bin/jerboa` shell launcher and supplies an extracted jerbuild library cache as `JERBOA_HOME`. That launcher expects a source/build-tree layout (`VERSION` and `.chez/bin/scheme`), which the extracted library cache does not provide. The resulting advice to run `make chez` is inappropriate for this installed-binary workflow. No separate Jerboa object-code tree or Chez installation has been demonstrated necessary. In this incident, the misleading diagnostic was incorrectly promoted by an agent into a user-facing “restore the Jerboa build toolchain/cache” blocker. ## Environment and reproduction Observed 2026-09-24 on macOS: - Installed executable: `/Users/user/.local/bin/jerboa`, reporting `jerboa 0.13.1 (multicall: jerboa/jmcp/jlsp/jerbuild/jpkg)` and bundled Chez runtime 10.4.0. - `/Users/user/.local/bin/jerbuild` is a symlink to `jerboa`. - Source checkout launcher: `/Users/user/mine/jerboa/bin/jerboa` (a shell script, a different entry point from the installed executable). - Extracted library cache hash: `567e2d4d1d494f8ebe8bf11bab47c622c39c36e2926a0bcca520c7ba619f3c11`. - Running MCP server build/version was not independently established; installed executable version alone does not establish it. Invoke MCP `jerboa_verify` (client tool name `mcp__jerboa__jerboa_verify`): ```json { "code": "(import (jerboa prelude))\n(display (+ 20 22))\n(newline)", "project_path": "/Users/user/work/jerboa-wormhole-conduit" } ``` Returned `isError: true`, completion status `failed`, exit status `1`. Diagnostic excerpt: ```text Jerboa CLI runtime unavailable: /Users/user/mine/jerboa/bin/jerboa Set JERBOA_MCP_JERBOA_PATH to an executable Jerboa CLI. /Users/user/mine/jerboa/bin/jerboa: line 19: /Users/user/.cache/jerbuild/567e2d4d1d494f8ebe8bf11bab47c622c39c36e2926a0bcca520c7ba619f3c11/VERSION: No such file or directory Error: Chez Scheme not found at /Users/user/.cache/jerbuild/567e2d4d1d494f8ebe8bf11bab47c622c39c36e2926a0bcca520c7ba619f3c11/.chez/bin/scheme Run 'make chez' from /Users/user/.cache/jerbuild/567e2d4d1d494f8ebe8bf11bab47c622c39c36e2926a0bcca520c7ba619f3c11 to build the repo-local Scheme. ``` In the same project directory, the installed toolchain successfully executes the same program: ```sh printf '%s\n' '(import (jerboa prelude))' '(display (+ 20 22))' '(newline)' \ | /Users/user/.local/bin/jerbuild exec - ``` Result: `42`, exit status `0`. This establishes a working bundled runtime and prelude import; it is not a claim that the entire Conduit application has been built or verified by this smoke check. ## Cause supported by the evidence The selected shell launcher sets `SCHEME` to `$JERBOA_HOME/.chez/bin/scheme` by default and reads `$JERBOA_HOME/VERSION`. Its error paths resolve inside the extracted library cache. This demonstrates a launcher/home-layout mismatch. The precise MCP selection precedence and whether configuration or default discovery selected that launcher still need investigation. ## Requested fix and regression coverage 1. Make MCP runtime discovery use the installed self-contained Jerboa/jerbuild entry points correctly. Keep source-checkout launchers and extracted bundled-library directories distinct. 2. Avoid pairing a source launcher with an extracted library cache as its source/build home. Report the selected executable and relevant environment when preflight fails. 3. Diagnose this as a launcher/environment mismatch; do not direct installed-binary users to build Chez or supply Jerboa object code. 4. Add a regression with only the shipped binary and its symlinks available, without a separate Chez installation or Jerboa build tree. Verify MCP syntax/expansion and the supported compilation paths. 5. Add a case where a source checkout is discoverable alongside the installed binary and an extracted library cache, reproducing this conflicting selection. Direct `jerbuild exec -` is a verified workaround for the smoke program. Changing `JERBOA_MCP_JERBOA_PATH` has not yet been tested as a complete MCP workaround. Related closed issue: https://git.jerboa.sh/ober/jerboa/issues/53 (MCP runtime discovery and misleading repair advice). This report isolates a reproduced source-launcher/extracted-cache mismatch; it does not establish that the same implementation defect caused both incidents.
ober closed this issue 2026-09-24 15:38:47 -04:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ober/jerboa#93
No description provided.