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

MGS3051: a job store write from an older magus

magus job fork, magus job apply and every other command that writes the job store refused because the newest build that wrote it is newer than this one:

[MGS3051] job: this magus, 1f3c (committed 2026-10-20T09:12:00Z), is older than
  8a9d (committed 2026-10-22T18:40:11Z), which last wrote
  ~/.local/state/magus/jobs/.../jobs.jsonl: run the newer ./magus, or rebuild
  ./magus at the current base

A build that carries no commit stamp, such as a test binary, go run, or a bare go build of a modified tree, is refused the same way once a build with a commit has written the store, and the message says so.

Nothing was written to the job store.

Why

Every checkout of a repository shares one job store, and each command judges a job with the ./magus in the checkout that ran it. A binary built before a fix writes rows by the rules the fix replaced, and the rows it writes are read as if the current code had judged them. Each write stamps its build's commit and commit time on the store's header line, so a write from an older build can be told apart and refused.

What is not refused

  • Reading the store: magus ls jobs and magus describe job read with any build. A read that ends a row it proves dead writes, so it is refused too.
  • A build at the same commit, or a newer one; the newer one takes the stamp over.
  • Any build, while no build with a commit has written the store.

What to do

Run the command with the ./magus that wrote the store last, or rebuild ./magus from the current commit and run it again.

See also

MGS3051jobsjob storeleasesforkapplybuildversionagents
Last updated (61fd39a7)
Glossary

Workspace

The magus root directory that owns a set of projects and shared config; the unit magus operates over. Workspace in full.

Agent

A model working through an agent host such as Claude Code, Codex, Cursor or OpenCode. magus treats an agent as one more caller of its CLI, MCP tools and console, held to the same checks as a person. Agent in full.

Job

The unit of delegated work, and one row of the job store: what an orchestrating agent handed out, with its goal, the checkpoint it was cut against, the paths it may write or must not touch, and the one check it runs. A job's holder is either a session, for work an orchestrator handed out, or the daemon, for its own maintenance. The store records; the agent guard is what reads those facts back when grading a write. Job in full.

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. Run in full.

Lease

The grant a holder takes on a job: the write and read paths that job declared, enforced in the checkout that took it with magus job exec. A job is the piece of work; a lease is permission over it. Lease in full.

Conventions

This page uses none of the site's convention markers. The full set is on the conventions page.