MGS3035: tool unprobeable
A spell declares a version probe for every tool its ops drive, and the answer is part of every cache key those ops write. This tool is present and runs, but the probe fails:
[MGS3035] go:golangci-lint reports no version in /repo/api: version probe
golangci-lint [--version] in /repo/api: exit status 3: panic: runtime error;
fix the tool or its probe
The part after the directory is the tool's own words, quoted from its output.
Without a version, no cache key could tell one build of the tool from its
upgrade. A terminal prints that reason dim under the message; an agent's
display leaves it in the run log unless run with -v, and -o json carries
it as why.
Why it is an error
The ops can still pass. A key recording a placeholder in place of the version would then replay those passes after the tool is upgraded, because nothing in the key moved. magus does not write a key that cannot tell two builds apart, so the run stops here, before any target runs.
An absent tool is not this
A tool that is not there gets a warning, not this error, and its key records
UNPROBED:
- the probe's binary is not on PATH (MGS3003);
- mise is on PATH but selects no version of the tool for the directory;
- a tool a package manager runs from its install (
pnpm exec tsc) is missing from that install. The warning names the cause: nonode_modules, an install that never finished, or an install that does not ship the tool, along with the command that fixes it, such asmagus run install console.
UNPROBED is honest there because nothing that drives an absent tool can pass,
so no result is ever recorded under it that a later run could wrongly replay.
Installing the tool moves the key. The absence is cached like a version, so it
costs one probe and one warning per change to the probe's inputs, not one per
invocation.
Resolution
- Run the probe yourself in the directory the message names. The quoted line is usually enough to say what broke.
- Fix the tool by reinstalling it or repairing the configuration it reads at startup.
- Fix the probe, when the tool does not understand the argv its spell
declares, by correcting the
probein the spell'smgs_getTools.
Graph reads
magus status, magus refs and the other graph reads do not fail over one
project's tool, because a read runs no tool and writes no cache entry. The
project's symbol index reports unvouched with this message, and the other
projects answer as usual.