Skip to content

McpAnnotationTrustChange

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:718

EXT-70 §4.7.1/§4.7.4 — the outcome of believing (or ceasing to believe) hints from one server, so the surface that asked can report exactly what landed and what it costs.

weakening is the field that keeps the human un-surprised. Withdrawing trust pushes a hint back to its fail-closed default, which for three of the four is a weakening, so the saved approvals made for that server while the hint was believed will be invalidated (§4.7.4) at the next call to that tool. That has to be said where the user withdraws trust, not only in the notice that arrives later.

added: ("readOnlyHint" | "destructiveHint" | "idempotentHint" | "openWorldHint")[]

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:720

Hints this change started believing (absent from the previous set).


configured: boolean

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:697

Whether this key names a server in the loaded config’s mcpServers.

McpServerAnnotationTrust.configured


invalidates: string[]

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:756

§4.7.4 — the saved approvals for this server that the resulting trust actually weakens, each rendered by describeApprovalEntry. They are the ones that will be withdrawn, with the §4.7.4 notice, at the next call to that tool.

A prediction, never a deletion. Invalidation stays scoped to the call being decided, because a sweep would read every held grant against a source that can only answer for the tools registered right now — a server that happened to be offline would read as having weakened everything it ever declared, and the grants would go. Listing them is safe where deleting them is not.

It over-reports in two distinct ways, and both are the same trade. The comparison is each grant’s recorded snapshot against the set in force now, not the set before this change against the set after it. So (1) a server that is offline when trust moves declares nothing, resolves to the fail-closed constant, and every grant it holds is named; and (2) a grant already weakened for some other reason — an earlier withdrawal, a tools/list that took a hint back — is named under whichever withdrawal happens to run next, including one that moved nothing relevant to it. A named grant is therefore one that the trust now in force weakens, which is what the user needs to know; it is not a claim that this withdrawal is what weakened it. Reading it as the latter is how a test comes to assert causation the field never promised.

Empty is likewise not “nothing is at risk” but “nothing this session can see is”: with weakening non-empty the rule still holds for any grant made while those hints were believed, which is what the notice says in that case. Counted read-only, like AllowlistCounts: the persisted store is consulted only when it is already loaded.


removed: ("readOnlyHint" | "destructiveHint" | "idempotentHint" | "openWorldHint")[]

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:722

Hints this change stopped believing (present in the previous set).


server: string

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:693

§4.7.5 — the user’s own mcpServers config key.

McpServerAnnotationTrust.server


trusted: ("readOnlyHint" | "destructiveHint" | "idempotentHint" | "openWorldHint")[]

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:695

The hints believed from this server, resolved through defaults where it is not named.

McpServerAnnotationTrust.trusted


weakening: ("readOnlyHint" | "destructiveHint" | "idempotentHint" | "openWorldHint")[]

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:729

§4.7.4 — the subset of removed whose withdrawal can weaken an effective set, and therefore invalidate a grant. Empty on a grant of trust, which can never weaken: every weakening move ends at the fail-closed default, and believing a hint only ever moves away from it.