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

MGS1102: this review provider does not implement that op

magus called one of the four reserved review ops and the wired spell does not export it.

[MGS1102] review provider: publish_review is not implemented by this spell, so
nothing was sent

Why

A review provider is a spell exporting up to four reserved function names - find_review, review_threads, publish_review, reply_review. A spell may implement a subset, and that is stated in the contract rather than tolerated: a host with no comment API can still take a review body, so a missing op means that provider lacks the capability, not that the spell is broken.

What matters is that a missing op means two different things depending on the direction of the call, and magus treats them differently:

  • On a READ - review_threads against a host with no comment API - an absent op answers nothing, and nothing is the truth. The surface renders no conversation and says why.
  • On a WRITE - publish_review - an absent op answering nothing would be read as success. The caller marks every draft published, publish only ever considers unpublished drafts, and the remarks are gone permanently. So a write to an op nobody implemented is an error, and this is that error.

That asymmetry is the whole reason the code exists. A tolerated silence is safe for a question and unsafe for an act.

Fix

  • Check which spell is wired. magus\review.provider(...) in your magusfile names it; the ops it exports are what magus can call.
  • Export the op, if the host supports it. See Authoring spells for the shape of a provider op and the parameters each reserved name receives.
  • Use a different surface for that act. Where a provider cannot publish, magus will not fabricate a path that appears to - the remarks stay drafts and stay yours.

See also

  • MGS1101 - a VCS backend that cannot answer a lookup.
  • MGS1103 - a provider that does not say who opened a review.
  • Review - the four ops and what each answers.
MGS1102capabilityreviewproviderspellgithubpublish
Last updated (70fda951)
Glossary

Magusfile

The magusfile.buzz that declares a project's targets (as export funs) and binds its spells. 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.

Spell

A language/runtime adapter (e.g. go, md) that maps generic targets onto a toolchain's real commands. See spells.

Conventions

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