Repository navigation
launcher: a bare AXIOMCODE_BASH is found on PATH, and Node below 22.13 is refused up front - #1867
Merged
swapnilpaliwal-sd merged 5 commits intoOct 8, 2026
Conversation
…1357) On macOS and Linux `axiomcode mcp` always warned "AXIOMCODE_BASH is set to bash, which does not exist. The server starts, but every tool will say it cannot run the CLI", while every tool worked. The command exports the bash it chose, the bare name `bash` on POSIX, and the MCP launcher it starts checked that value as a file path. A bare name is now looked up on PATH (absolute directories only, as which.js does); a path is still checked as written, and either one missing is still an error, exit 127. Co-authored-by: axiomcode-bot[bot] <334110751+axiomcode-bot[bot]@users.noreply.github.com>
swapnilpaliwal-sd
requested review from
JaredHLZhang,
Whua689 and
suyashpaliwal26
as code owners
October 8, 2026 17:59
The PATH lookup for a bare AXIOMCODE_BASH went through which.js on Windows too, where a bare `bash` resolves to WSL's (System32 or the WindowsApps alias), the bash this file exists to avoid. The command always exports a full path there, so a bare name can only be one a user set: it stays an error, now saying to give Git Bash's full path. Co-authored-by: axiomcode-bot[bot] <334110751+axiomcode-bot[bot]@users.noreply.github.com>
…/1357-bash-name-on-path
The graph is written with node:sqlite, which Node ships without a flag only from 22.13 (and 23.4). #1866 set engines to >=22.5, but on 22.5-22.12 the module needs --experimental-sqlite: on Node 22.11 `axiomcode index` got past the bundle's version check and failed with "No such built-in module: node:sqlite". - bin/axiomcode.js stops at once on an older Node: "axiomcode needs Node 22.13 or newer (it writes the graph with node:sqlite); this is Node X". Asked by version, since loading the module prints Node's experimental-feature warning on every command. - sqliteAvailable() asks the module, not the version. - engines.node >=22.13.0 in both package.json files; CI and the C# suite README say 22.13. Checked on Node 22.11 and 23.3 (refused, module absent) and 22.13 and 23.4 (run, module present). Co-authored-by: axiomcode-bot[bot] <334110751+axiomcode-bot[bot]@users.noreply.github.com>
Node ≥ 22.13 in the badge and Requirements (#1865). The refresh paragraph still said a query waits up to AXIOMCODE_FRESH_WAIT (default 10) seconds; since #1864 it answers from the previous graph at once, with the rows in edited files marked, and --fresh waits. Committed with --no-verify (approved for this PR): the term check matches content already in README.md, none of it in these lines. Co-authored-by: axiomcode-bot[bot] <334110751+axiomcode-bot[bot]@users.noreply.github.com>
This was referenced Oct 8, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1357. Closes #1865.
1. False "bash does not exist" warning (#1357)
Symptom. On macOS and Linux,
axiomcode mcpalways printedAXIOMCODE_BASH is set to bash, which does not exist. The server starts, but every tool will say it cannot run the CLIwhile every tool worked;AXIOMCODE_BASH=bash axiomcode …exited 127 outright. Reported by two external evaluations on 0.1.8.Cause.
bin/axiomcode.jsexports the bash it chose; on POSIX that is the bare namebash.findBash()checked the override withfs.existsSync, a file-path test.Change. A path is checked as written; on POSIX a bare name is resolved on PATH (absolute directories only). On Windows a bare name stays an error, now saying to give Git Bash's full path: a bare
bashthere is WSL's, which this file exists to avoid. A missing bash is still exit 127.2. Node floor (#1865)
Symptom. On Node 22.11 (within the declared
>=22.5),axiomcode indexfailed with❌ bundle: No such built-in module: node:sqlite.Cause.
node:sqliteneeds--experimental-sqliteon 22.5–22.12 and 23.0–23.3; the bundle'ssqliteAvailable()tested the version and let them through.Change.
engines.node >=22.13.0in bothpackage.jsonfiles;bin/axiomcode.jsrefuses an older Node before anything runs ("axiomcode needs Node 22.13 or newer (it writes the graph with node:sqlite); this is Node X");sqliteAvailable()probes the module; CI comment, the C# suite README and README.md say 22.13.3. README: the query-wait default
README.md still said a query waits up to
AXIOMCODE_FRESH_WAIT(default 10) seconds; since #1864 it answers from the previous graph at once, rows in edited files marked, and--freshwaits. The README commit used--no-verify: the pre-commit term check matches content already in README.md on the integration branch, none of it in the added lines.Validation
Same tiny Python fixture; released 0.1.8 with the original vs the fixed
find-bash.js(byte-identical otherwise); GCE VMs deleted after.AXIOMCODE_BASH=bashexit 127AXIOMCODE_BASH=bashexit 0bash: "does not exist"bash: "not a full path … Git Bash's bash.exe"; Git Bash's full path exit 0Controls on every platform: a nonexistent path exits 127 with "does not exist".
Node floor, real binaries: 22.11 and 23.3 refused at once (module absent); 22.13 and 23.4 run (module present).
Tests:
tests/mcp.py(new checks fail on the oldfind-bash.jswith the reported message, pass with the fix),tests/cli_version.py.