[{"slug":"ZV-2026-1179","server_name":"402signal.com","severity":"breaking","title":"402signal.com: Tool route was removed.","summary":"[breaking] Tool route was removed. [safe] Tool check was added. [risky] Description of preview changed (64% word delta). [risky] Enum value polygon added to prefer_network on preview. [risky] Enum value arbitrum added to prefer_network on preview. [risky] Enum value monad added to prefer_network on preview. [risky] Enum value worldchain added to prefer_network on preview. [risky] Enum value xlayer added to prefer_network on preview. [risky] Enum value bnb added to prefer_network on preview. [risky] Enum value hyperevm added to prefer_network on preview. [risky] Enum value ethereum added to prefer_network on preview. [risky] Enum value optimism added to prefer_network on preview. [risky] Enum value avalanche added to prefer_network on preview. [risky] Enum value tempo added to prefer_network on preview. [risky] Enum value sei added to prefer_network on preview. [risky] Enum value celo added to prefer_network on preview. [risky] Enum value robinhood added to prefer_network on preview. [risky] Enum value binding_unavailable added to miss_reason on preview. [risky] Enum value authorization_used added to miss_reason on preview. [risky] Enum value invalid_session_shape added to miss_reason on preview. [risky] Enum value mandate_mismatch added to miss_reason on preview. [risky] Enum value unsupported_hop_field added to miss_reason on preview. [risky] Description of validate changed (49% word delta). [risky] Enum value binding_unavailable added to miss_reason on validate. [risky] Enum value authorization_used added to miss_reason on validate. [risky] Enum value invalid_session_shape added to miss_reason on validate. [risky] Enum value mandate_mismatch added to miss_reason on validate. [risky] Enum value unsupported_hop_field added to miss_reason on validate.","changes":[{"kind":"tool_removed","tool":"route","detail":"Tool `route` was removed.","severity":"breaking"},{"kind":"tool_added","tool":"check","detail":"Tool `check` was added.","severity":"safe"},{"kind":"description_changed","tool":"preview","after":"Discovers catalog-listed paid API endpoints by capability without paying or contacting sellers. Returns claimed listings and earlier observations; not_probed=true means no new live check. Results may be incomplete.\n\nFree and read-only: no fee, no seller contact, nothing recorded; safe to repeat. It queries the current upstream catalogs and the local shadow catalog. Use validate for a free readiness check of one listed URL, and check for a fresh paid observation or a signed receipt before paying.\n\nPass a nonblank need (capability), not a URL; a URL in need finds nothing. networks is a hard allowlist and prefer_network only orders the results within it; an empty or unrecognized networks value restricts to nothing rather than widening to every network. Seller-written fields in hits are catalog claims, not observations.","before":"Discovers catalog-listed paid API endpoints by capability without paying or contacting sellers. Returns claimed listings and any earlier observations; not_probed=true means this is not a new live check. Freshness is for this search response, not each seller's last probe. Results can be limited or non-exhaustive.\n\nUse first to find candidates by need. Use validate next for an unpaid readiness check of one concrete catalog-listed URL. Use route when you need fresh probing, constraint-based selection, or signed routing evidence.\n\nPass a nonblank need (capability), not a URL. networks is a hard allowlist (omit = all supported rails; [] = none). prefer_network only ranks and cannot add an excluded rail. A chain named in need can influence ranking when prefer_network is omitted. Preview does not enforce a purchase budget, reserve a price, or authorize payment.","detail":"Description of `preview` changed (64% word delta).","severity":"risky","descriptionDelta":0.6408450704225352},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"polygon","detail":"Enum value `polygon` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"arbitrum","detail":"Enum value `arbitrum` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"monad","detail":"Enum value `monad` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"worldchain","detail":"Enum value `worldchain` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"xlayer","detail":"Enum value `xlayer` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"bnb","detail":"Enum value `bnb` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"hyperevm","detail":"Enum value `hyperevm` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"ethereum","detail":"Enum value `ethereum` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"optimism","detail":"Enum value `optimism` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"avalanche","detail":"Enum value `avalanche` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"tempo","detail":"Enum value `tempo` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"sei","detail":"Enum value `sei` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"celo","detail":"Enum value `celo` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.prefer_network","tool":"preview","after":"robinhood","detail":"Enum value `robinhood` added to `prefer_network` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"outputSchema.properties.miss_reason","tool":"preview","after":"binding_unavailable","detail":"Enum value `binding_unavailable` added to `miss_reason` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"outputSchema.properties.miss_reason","tool":"preview","after":"authorization_used","detail":"Enum value `authorization_used` added to `miss_reason` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"outputSchema.properties.miss_reason","tool":"preview","after":"invalid_session_shape","detail":"Enum value `invalid_session_shape` added to `miss_reason` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"outputSchema.properties.miss_reason","tool":"preview","after":"mandate_mismatch","detail":"Enum value `mandate_mismatch` added to `miss_reason` on `preview`.","severity":"risky"},{"kind":"enum_value_added","path":"outputSchema.properties.miss_reason","tool":"preview","after":"unsupported_hop_field","detail":"Enum value `unsupported_hop_field` added to `miss_reason` on `preview`.","severity":"risky"},{"kind":"description_changed","tool":"validate","after":"Checks unpaid readiness for one concrete HTTPS seller URL already listed in the local catalog (for example a URL from preview). Compares claimed against observed payment and readiness flags without buying the service.\n\nFree: one unpaid probe of the seller, no fee, nothing paid, and the public numbers do not change; safe to repeat. Use preview to find listed URLs; use check instead when the URL is not listed, when price or network rules must apply, or when a signed receipt is needed before paying.\n\nSupply the exact listed URL including its query string. Unlisted or modified URLs return miss_reason=unlisted without a probe (not listed, not proven offline). Inspect live, readiness, observed and miss_reason; HTTP 200 alone is not success. No price or network filter and no signed receipt.","before":"Checks unpaid readiness for one concrete HTTPS seller URL already listed in the local catalog (for example a URL from preview). Compares claimed vs observed payment/readiness flags. Does not buy the service or append a routing observation to history.\n\nUse for a free readiness check of a known catalog URL. Use preview instead to find endpoints by capability. Use route for live constraint-based selection, signed routing evidence, or a direct URL outside the catalog (subject to routing safety checks).\n\nSupply the exact listed HTTPS URL, including query string. Private/local destinations and unresolved path templates are refused. Unknown or modified URLs can return miss_reason=unlisted with no seller probe (means not listed, not proven offline). Inspect live, readiness, observed, and miss_reason; HTTP 200 alone is not success. Validate has no price or network filter, produces no signed route receipt, and is not proof a paid call will deliver the desired result.","detail":"Description of `validate` changed (49% word delta).","severity":"risky","descriptionDelta":0.487603305785124},{"kind":"enum_value_added","path":"outputSchema.properties.miss_reason","tool":"validate","after":"binding_unavailable","detail":"Enum value `binding_unavailable` added to `miss_reason` on `validate`.","severity":"risky"},{"kind":"enum_value_added","path":"outputSchema.properties.miss_reason","tool":"validate","after":"authorization_used","detail":"Enum value `authorization_used` added to `miss_reason` on `validate`.","severity":"risky"},{"kind":"enum_value_added","path":"outputSchema.properties.miss_reason","tool":"validate","after":"invalid_session_shape","detail":"Enum value `invalid_session_shape` added to `miss_reason` on `validate`.","severity":"risky"},{"kind":"enum_value_added","path":"outputSchema.properties.miss_reason","tool":"validate","after":"mandate_mismatch","detail":"Enum value `mandate_mismatch` added to `miss_reason` on `validate`.","severity":"risky"},{"kind":"enum_value_added","path":"outputSchema.properties.miss_reason","tool":"validate","after":"unsupported_hop_field","detail":"Enum value `unsupported_hop_field` added to `miss_reason` on `validate`.","severity":"risky"}],"published_at":"2026-09-18T17:56:19.907Z"},{"slug":"ZV-2026-0585","server_name":"402signal.com","severity":"breaking","title":"402signal.com: miss_reason on preview narrowed to a closed enum (no_candidates, no_402_envelope, no_payto, reachable_200, probe_timeout, quote_expired, invalid_need, upstream_5xx, ssrf, no_input_schem","summary":"[breaking] miss_reason on preview narrowed to a closed enum (no_candidates, no_402_envelope, no_payto, reachable_200, probe_timeout, quote_expired, invalid_need, upstream_5xx, ssrf, no_input_schema, constraints_unmet, probe_budget_exhausted, probe_limit_reached, unsafe_to_probe, null); previously valid values may now be rejected. [risky] Optional field accept_payTo_change was added to route; may shift model behaviour. [risky] Optional field require_transparency was added to route; may shift model behaviour. [safe] Field need on route is no longer required. [risky] Field pq_trust was added to route output. [risky] Enum value null added to miss_reason on route. [breaking] miss_reason on validate narrowed to a closed enum (no_candidates, no_402_envelope, no_payto, reachable_200, probe_timeout, quote_expired, invalid_need, upstream_5xx, ssrf, no_input_schema, constraints_unmet, probe_budget_exhausted, probe_limit_reached, unsafe_to_probe, null); previously valid values may now be rejected.","changes":[{"kind":"enum_narrowed","path":"outputSchema.properties.miss_reason","tool":"preview","after":"enum[no_candidates,no_402_envelope,no_payto,reachable_200,probe_timeout,quote_expired,invalid_need,upstream_5xx,ssrf,no_input_schema,constraints_unmet,probe_budget_exhausted,probe_limit_reached,unsafe_to_probe,null]","before":"open","detail":"`miss_reason` on `preview` narrowed to a closed enum (no_candidates, no_402_envelope, no_payto, reachable_200, probe_timeout, quote_expired, invalid_need, upstream_5xx, ssrf, no_input_schema, constraints_unmet, probe_budget_exhausted, probe_limit_reached, unsafe_to_probe, null); previously valid values may now be rejected.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.accept_payTo_change","tool":"route","after":{"type":"boolean","description":"If true, allow selecting a destination whose payTo just changed for the first time. Default false: the first unexpected payTo change is not selectable; a second later independent observation of the same destination can establish it."},"detail":"Optional field `accept_payTo_change` was added to `route`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.require_transparency","tool":"route","after":{"type":"boolean","description":"If true, paid /route fails when a signed checkpoint receipt cannot be produced. Default false: routing continues if signing or anchoring is down."},"detail":"Optional field `require_transparency` was added to `route`; may shift model behaviour.","severity":"risky"},{"kind":"input_required_removed","path":"inputSchema.required.need","tool":"route","detail":"Field `need` on `route` is no longer required.","severity":"safe"},{"kind":"output_property_added","path":"outputSchema.properties.pq_trust","tool":"route","after":{"type":"object","properties":{"transparency":{"type":"object","properties":{"index":{"type":"integer"},"state":{"enum":["logged_uncheckpointed","checkpoint_signed","authorized","submitted","confirmed","unavailable"],"type":"string"},"reveal":{"type":"object"},"status":{"enum":["pending","logged_uncheckpointed","unavailable"],"type":"string"},"receipt":{"type":"object"},"leaf_type":{"type":"string"},"log_origin":{"type":"string"},"checkpoint_size":{"type":"integer"}}}}},"detail":"Field `pq_trust` was added to `route` output.","severity":"risky"},{"kind":"enum_value_added","path":"outputSchema.properties.miss_reason","tool":"route","after":"null","detail":"Enum value `null` added to `miss_reason` on `route`.","severity":"risky"},{"kind":"enum_narrowed","path":"outputSchema.properties.miss_reason","tool":"validate","after":"enum[no_candidates,no_402_envelope,no_payto,reachable_200,probe_timeout,quote_expired,invalid_need,upstream_5xx,ssrf,no_input_schema,constraints_unmet,probe_budget_exhausted,probe_limit_reached,unsafe_to_probe,null]","before":"open","detail":"`miss_reason` on `validate` narrowed to a closed enum (no_candidates, no_402_envelope, no_payto, reachable_200, probe_timeout, quote_expired, invalid_need, upstream_5xx, ssrf, no_input_schema, constraints_unmet, probe_budget_exhausted, probe_limit_reached, unsafe_to_probe, null); previously valid values may now be rejected.","severity":"breaking"}],"published_at":"2026-09-01T05:16:39.860Z"}]