magus v0.4.3 is out. See what's new
¶ View markdown source · ✎ Suggest an edit
1 min read

MGS7003: symbol index not current

The conformance checks in magus diff read the symbol index. Before they run, magus brings the index of every project the change touched up to date, by running that project's scip target through the run scheduler and the cache: an index that is already current replays, and a stale one rebuilds only itself.

This code fires when that could not happen for one or more projects. The review still lists every file, its role, reach and ownership, but the conformance checks do not run, and each surface says so in their place: the magus diff report, --prompt, the console, and the conformance section of the pull request comment, which fails its step rather than reading as a change with nothing to report.

Why

A stale index answers questions about a tree that no longer exists. A new function missing from it has no family to be compared against, so every check would stay quiet, and quiet is exactly what a clean change looks like. The review refuses to read one rather than report that absence as a result.

Resolution

The message names each project and its cause.

  • The indexer is not installed (scip-go, scip-typescript, and so on). Install the one the message names, then run magus graph build.
  • The indexer failed. Run magus run <project>::scip to see its output, fix what it reports, then rerun the review.
  • Cache writes are off (cache.write.enabled: false, or MAGUS_CACHE_WRITE_ENABLED=false). The indexer ran, but the cache recorded nothing to vouch for what it wrote, so the index cannot be told apart from a stale one. Enable cache writes for the run that reviews. Without MAGUS_CACHE_SIGNING_KEY it still publishes nothing to a shared cache.
  • The cache could not be opened. Check that the cache directory is writable, then rerun.
MGS7003knowledge graphsymbol indexscipconformancediffreview
Last updated (918ff7e4)
Glossary

Project

A directory magus recognizes as a unit of work (it has a magusfile); the unit of caching, scheduling, and dependency tracking. See workspace.

Target

A named operation (build, test, ...) you invoke with magus run <target>; it may compose a spell's tool-native operations and depend on other targets. See targets.

Op

A single tool-native command a target composes (long form: operation); the middle of the work hierarchy (Spell to Op to Target). See operations.

Cache

The content-addressed store magus consults before running a target, so unchanged work is skipped. See cache.

CI

An ordinary magusfile-defined target you compose yourself with magus\needs - magus does not hardcode its stages. Magus.RunCI treats it specially only in that it strips the rw charm, it is the anchor magus affected ci keys off, and a selected scope with no project declaring it is a load error rather than a silent no-op. See targets.

Knowledge graph

The queryable graph of a workspace's spells, targets, docs, and code relationships; query it with magus query/explain/path. See knowledge.

Ownership

An insight lens: author concentration - the primary author and their share, the distinct-author count (the bus factor), and abandonment. See insight.

Run

One target executing under one magus invocation, such as magus run test web or magus affected ci. A run keeps its captured output behind an output reference. Every magus run is a run whether or not any job asked for it; see Job for how the two relate.

Conventions

Placeholders

Angle brackets mark a value you replace with your own - never type the brackets:

magus run <target>
magus completion <shell>    # e.g. bash, zsh, fish

<target>, <path>, <shell>, <name> and the like are stand-ins, not literal text.