Changelog
Developer changelog
Changes to the MISSIN public API, the MCP server, the SDK and the CLI, by API version, newest first, each with release notes and upgrade steps.
Every change to the public API, by API version, newest first. A version is cut only for a breaking change; everything additive lands in the current one. Until the API is released, breaking changes also land in the current version, marked pre-release. Each version links to its release notes, with the old and new hashes and the upgrade steps. Versions and stability explains how versions are named and how long an old one works.
2026-10-09.aster
Latest Released 9 Oct 2026 · latest
Release candidate Pre-release: breaking changes may land in this version without a new one being cut, until the API is released.
No changes since this version was cut.
Release notes for 2026-10-09.aster
Before 2026-10-09.aster
2026-10-09: Outcomes, not the engine's workings
Seven reads keep their names, tools and commands but return outcomes only. The fields below are removed from the response; read the verdict, tier, trust, evidence and revenue fields that remain. Every one of these operations has a new hash, so regenerate any pinned hash.
MendJourney(get_mend_journey) no longer returnsroundsRun,thresholds,ingress,egress,model,catalogueVersion,algorithmVersion,stateDigest,usageInputTokens,usageOutputTokensorlatencyMs, and a touchpoint no longer returnsguardedortimingSeconds. It now returns each touchpoint'smendTier.$filteris unchanged.AttributionEngine(get_attribution_engine,missin attribution get-engine) no longer takes$sample(--sample) and no longer returnsjudged(the judgement sample with its egress, model, versions, rounds and latency),calibration(touchpoints grouped by evidence),versions(touchpoints grouped by algorithm version) or the month's average latency. Counts, revenue by tier, coverage (scored,unseen,channel) and this month's token cost (month,judgedThisMonth) remain.AttributionConversions(get_attribution_conversions) no longer returns a touchpoint's itemised points (discountMatchPts,clickIdPts,linkMatchPts,utmMatchPts,clickPts,handleMatchPts,lastTouchPts,campaignMatchPts,firstTouchPts,channelNamedPts,openPts,deliveryPts,timingPts),combinationSignal,timingSeconds,certaintyRaw,validityFactor,postLikelihood,nominationFactor,channelMatch,algorithmVersionorguarded, nor a judgement'salgorithmVersion,catalogueVersion,latencyMs,usageInputTokensorusageOutputTokens. Revenue, role, tier, trust,evidencePct,sharePct,caused, the touchpoint and the order's identity remain.FormResponseDetail(get_form_response) no longer returns the judgement'segressorthresholds.BillingUsageSeries(get_billing_usage_series) no longer returnsbyModel. UsebyProductandbyFeature.AttributionTouchpoints(get_attribution_touchpoints) no longer returnspostLikelihood,validityFactor,nominationFactor,channelMatchorguarded. Role, tier, trust,evidencePct,sharePct,caused,creditedReportedand the order, post, send or ad remain. Itsfilterno longer acceptsalgorithmVersionorvalueScore.PostDetail(get_post) no longer returns an attribution'svalidityFactor. A post's ownvaliditysays whether it is approved.
Three operations are now internal, so a key can no longer call them:
PlacementTargets(get_placement_targets,missin discounts get-placement-targets) is removed. UseDiscountPlacementTargets(get_discount_placement_targets,missin discounts get-discount-placement-targets), which lists the same targets by discount code and keeps its name.PostCaptionFacts(get_post_caption_facts,missin posts get-caption-facts) is removed. It returned the judge's raw output. Read an order's outcome withMendJourney.- SetFormPlacementStepDone (
set_form_placement_step_done,missin forms set-placement-step-done) is removed. It ticked the platform's install checklist and changed nothing about a placement.
2026-10-08: Attribution overrides
OverrideAttribution(client.attribution.override(),missin attribution override, theoverride_attributiontool) is removed. A judgement is the engine's answer, and there is no merchant override of it.AttributionEngineno longer returnsoverrides, andMendJourneyno longer returnsattributionOverridesByJudgementId.
2026-10-06: Public API and the MCP server
- The public GraphQL endpoint is
https://api.missin.co.uk/graphql/v1. SendAuthorization: Bearer sk_live_...and a persisted operation's name and hash. - Every public operation has a page in the API reference, grouped by toolset, with its access level, variables and a request to copy.
- API keys carry an access level (Read, Write or Admin), and Postgres enforces it.
- The MISSIN MCP server is live at
https://api.missin.co.uk/mcp, authenticated with a secret key. See Connect Claude. OAuth is not available yet. - The
whoamitool, and theWhoAmIoperation behind it (theget_current_api_keytool), report a key's workspace, access level and creator's display name. - Ten more reads are open to keys:
CaptureGuardrails,CaptureMetrics,CaptureQueue,CaptureUnitRate,HomeOverview,RetentionDropOffMedian,FormResponsesSurface,SearchPlacementTargets,Ga4Propertiesand, for Admin keys,BillingUsage. Each returns the same figures the platform shows for the key's workspace. - Ga4Properties access raised from read to admin. It lists a Google connection's properties with that connection's own login, so it asks for the level
SetGa4Propertydoes. No key could call it before this change. - Waitlists can be paused, moved back to draft and restored from archive:
SetWaitlistStatus(Write) changes a waitlist's status, andWaitlistFormSnapshot(Read) returns the published form a waitlist's signup page renders. Releasing staysReleaseWaitlist. - Operations that a key cannot call yet, such as creating or revoking keys and starting a top-up, have no reference page.