[{"slug":"ZV-2026-1592","server_name":"mcp.vaquill.ai","severity":"breaking","title":"mcp.vaquill.ai: Tool create_watch was removed.","summary":"[breaking] Tool create_watch was removed. [breaking] Tool delete_watch was removed. [breaking] Tool get_watch_change_diff was removed. [breaking] Tool list_boards was removed. [breaking] Tool list_watch_changes was removed. [breaking] Tool list_watch_deliveries was removed. [breaking] Tool list_watches was removed. [breaking] Tool test_watch was removed. [breaking] Tool update_watch was removed.","changes":[{"kind":"tool_removed","tool":"create_watch","detail":"Tool `create_watch` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"delete_watch","detail":"Tool `delete_watch` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_watch_change_diff","detail":"Tool `get_watch_change_diff` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_boards","detail":"Tool `list_boards` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_watch_changes","detail":"Tool `list_watch_changes` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_watch_deliveries","detail":"Tool `list_watch_deliveries` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_watches","detail":"Tool `list_watches` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"test_watch","detail":"Tool `test_watch` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"update_watch","detail":"Tool `update_watch` was removed.","severity":"breaking"}],"published_at":"2026-09-29T10:27:17.409Z"},{"slug":"ZV-2026-1193","server_name":"mcp.vaquill.ai","severity":"breaking","title":"mcp.vaquill.ai: state on count_statute_sections narrowed to a closed enum (federal, al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, ","summary":"[safe] Tool get_credit_balance was added. [safe] Description of count_statute_sections changed (3% word delta). [breaking] state on count_statute_sections narrowed to a closed enum (federal, al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj, nm, ny, nc, nd, oh, ok, or, pa, pr, ri, sc, sd, tn, tx, ut, vt, va, wa, wv, wi, wy); previously valid values may now be rejected. [risky] Enum value operative added to format on get_us_statute_section_text. [risky] Optional field cursor was added to list_statute_divisions; may shift model behaviour. [breaking] state on resolve_statute_citations_batch narrowed to a closed enum (al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj, nm, ny, nc, nd, oh, ok, or, pa, pr, ri, sc, sd, tn, tx, ut, vt, va, wa, wv, wi, wy); previously valid values may now be rejected. [breaking] corpusType on resolve_statute_citations_batch narrowed to a closed enum (CONSTITUTION, REGULATION, STATE, STATE_CONSTITUTION, STATE_RULES); previously valid values may now be rejected. [risky] Enum value renumberedToLabel added to fields on search_us_statutes. [risky] Enum value transferredToLabel added to fields on search_us_statutes.","changes":[{"kind":"tool_added","tool":"get_credit_balance","detail":"Tool `get_credit_balance` was added.","severity":"safe"},{"kind":"description_changed","tool":"count_statute_sections","after":"How many sections sit in a jurisdiction, corpus, code, title, chapter or part.\n\n**Cost**: 1 credit. A scope that matches nothing is refunded, because an empty\nanswer here is usually a wrong filter rather than a finding.\n\nUse it to size a job before you run it. Walking a container with\n`/us/statutes/divisions` and hydrating what you find is cheap per call and adds\nup across a whole corpus, so this is the call that tells you what you are about\nto spend before you spend it.\n\n**There is no `query` parameter, on purpose.** Search ranks over a bounded\nwindow, so \"how many sections match this query\" has no answer beyond the size of\nthat window. This counts a SCOPE, which is exact. Pair the two: count the scope\nhere, enumerate it with `/us/statutes/divisions`, then rank within it using\n`/us/statutes/search`.\n\nThe figure counts SECTIONS. Long sections are stored as several passages and are\ncounted once.","before":"How many sections sit in a jurisdiction, corpus, code, title, chapter or part.\n\n**Cost**: 1 credit. A scope that matches nothing is refunded, because an empty\nanswer here is usually a wrong filter rather than a finding.\n\nUse it to size a job before you run it. Walking a container with\n`/us/statutes/divisions` and hydrating what you find is cheap per call and adds\nup across 52 jurisdictions, so this is the call that tells you what you are\nabout to spend before you spend it.\n\n**There is no `query` parameter, on purpose.** Search ranks over a bounded\nwindow, so \"how many sections match this query\" has no answer beyond the size of\nthat window. This counts a SCOPE, which is exact. Pair the two: count the scope\nhere, enumerate it with `/us/statutes/divisions`, then rank within it using\n`/us/statutes/search`.\n\nThe figure counts SECTIONS. Long sections are stored as several passages and are\ncounted once.","detail":"Description of `count_statute_sections` changed (3% word delta).","severity":"safe","descriptionDelta":0.02970297029702973},{"kind":"enum_narrowed","path":"inputSchema.properties.state","tool":"count_statute_sections","after":"enum[federal,al,ak,az,ar,ca,co,ct,de,dc,fl,ga,hi,id,il,in,ia,ks,ky,la,me,md,ma,mi,mn,ms,mo,mt,ne,nv,nh,nj,nm,ny,nc,nd,oh,ok,or,pa,pr,ri,sc,sd,tn,tx,ut,vt,va,wa,wv,wi,wy]","before":"open","detail":"`state` on `count_statute_sections` narrowed to a closed enum (federal, al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj, nm, ny, nc, nd, oh, ok, or, pa, pr, ri, sc, sd, tn, tx, ut, vt, va, wa, wv, wi, wy); previously valid values may now be rejected.","severity":"breaking"},{"kind":"enum_value_added","path":"inputSchema.properties.format","tool":"get_us_statute_section_text","after":"operative","detail":"Enum value `operative` added to `format` on `get_us_statute_section_text`.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.cursor","tool":"list_statute_divisions","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Resume token from a previous response's `nextCursor`. Only meaningful at the level that lists sections. Omit it to start at the beginning of the container."},"detail":"Optional field `cursor` was added to `list_statute_divisions`; may shift model behaviour.","severity":"risky"},{"kind":"enum_narrowed","path":"inputSchema.properties.state","tool":"resolve_statute_citations_batch","after":"enum[al,ak,az,ar,ca,co,ct,de,dc,fl,ga,hi,id,il,in,ia,ks,ky,la,me,md,ma,mi,mn,ms,mo,mt,ne,nv,nh,nj,nm,ny,nc,nd,oh,ok,or,pa,pr,ri,sc,sd,tn,tx,ut,vt,va,wa,wv,wi,wy]","before":"open","detail":"`state` on `resolve_statute_citations_batch` narrowed to a closed enum (al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj, nm, ny, nc, nd, oh, ok, or, pa, pr, ri, sc, sd, tn, tx, ut, vt, va, wa, wv, wi, wy); previously valid values may now be rejected.","severity":"breaking"},{"kind":"enum_narrowed","path":"inputSchema.properties.corpusType","tool":"resolve_statute_citations_batch","after":"enum[CONSTITUTION,REGULATION,STATE,STATE_CONSTITUTION,STATE_RULES]","before":"open","detail":"`corpusType` on `resolve_statute_citations_batch` narrowed to a closed enum (CONSTITUTION, REGULATION, STATE, STATE_CONSTITUTION, STATE_RULES); previously valid values may now be rejected.","severity":"breaking"},{"kind":"enum_value_added","path":"inputSchema.properties.fields","tool":"search_us_statutes","after":"renumberedToLabel","detail":"Enum value `renumberedToLabel` added to `fields` on `search_us_statutes`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.fields","tool":"search_us_statutes","after":"transferredToLabel","detail":"Enum value `transferredToLabel` added to `fields` on `search_us_statutes`.","severity":"risky"}],"published_at":"2026-09-19T07:12:16.079Z"},{"slug":"ZV-2026-1061","server_name":"mcp.vaquill.ai","severity":"breaking","title":"mcp.vaquill.ai: state on resolve_statute_citation narrowed to a closed enum (al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj,","summary":"[safe] Tool count_statute_sections was added. [risky] Optional field includeBody was added to get_sections_batch; may shift model behaviour. [risky] Optional field actStatus was added to list_statute_divisions; may shift model behaviour. [risky] Optional field excludeRepealed was added to list_statute_divisions; may shift model behaviour. [breaking] state on resolve_statute_citation narrowed to a closed enum (al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj, nm, ny, nc, nd, oh, ok, or, pa, pr, ri, sc, sd, tn, tx, ut, vt, va, wa, wv, wi, wy); previously valid values may now be rejected. [breaking] corpusType on resolve_statute_citation narrowed to a closed enum (CONSTITUTION, REGULATION, STATE, STATE_CONSTITUTION, STATE_RULES); previously valid values may now be rejected. [risky] Enum value effectiveDateRaw added to fields on search_us_statutes. [risky] Enum value expirationDateRaw added to fields on search_us_statutes. [risky] Enum value issueDateRaw added to fields on search_us_statutes. [risky] Enum value originalEnactmentDateRaw added to fields on search_us_statutes. [risky] Enum value rescindedOnRaw added to fields on search_us_statutes. [risky] Enum value signingDateRaw added to fields on search_us_statutes. [risky] Enum value ftc_advocacy_filing added to source on search_us_statutes. [risky] Enum value ftc_hsr_interpretation added to source on search_us_statutes.","changes":[{"kind":"tool_added","tool":"count_statute_sections","detail":"Tool `count_statute_sections` was added.","severity":"safe"},{"kind":"input_property_added","path":"inputSchema.properties.includeBody","tool":"get_sections_batch","after":{"type":"boolean","default":false,"description":"Return each section's full text inline on `body`, instead of metadata only. Adds the ordinary body price per row that returns text, so 20 ids resolving 20 bodies is 40 + 120 = 160 credits. Rows whose text cannot be resolved come back with `body: null` and are not charged for it, so read `creditsConsumed` rather than computing the total. Without this, use `/us/statutes/section/{actId}/body` one id at a time."},"detail":"Optional field `includeBody` was added to `get_sections_batch`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.actStatus","tool":"list_statute_divisions","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"List only sections carrying this status, e.g. `repealed`. The inverse of `excludeRepealed`, and useful for auditing what a container holds that is no longer operative."},"detail":"Optional field `actStatus` was added to `list_statute_divisions`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.excludeRepealed","tool":"list_statute_divisions","after":{"type":"boolean","default":false,"description":"Leave out sections whose status is affirmatively dead (repealed, superseded, renumbered and similar). A section carrying no recorded status is KEPT: a missing status is not evidence of repeal. Same vocabulary as the filter of this name on `POST /us/statutes/search`."},"detail":"Optional field `excludeRepealed` was added to `list_statute_divisions`; may shift model behaviour.","severity":"risky"},{"kind":"enum_narrowed","path":"inputSchema.properties.state","tool":"resolve_statute_citation","after":"enum[al,ak,az,ar,ca,co,ct,de,dc,fl,ga,hi,id,il,in,ia,ks,ky,la,me,md,ma,mi,mn,ms,mo,mt,ne,nv,nh,nj,nm,ny,nc,nd,oh,ok,or,pa,pr,ri,sc,sd,tn,tx,ut,vt,va,wa,wv,wi,wy]","before":"open","detail":"`state` on `resolve_statute_citation` narrowed to a closed enum (al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj, nm, ny, nc, nd, oh, ok, or, pa, pr, ri, sc, sd, tn, tx, ut, vt, va, wa, wv, wi, wy); previously valid values may now be rejected.","severity":"breaking"},{"kind":"enum_narrowed","path":"inputSchema.properties.corpusType","tool":"resolve_statute_citation","after":"enum[CONSTITUTION,REGULATION,STATE,STATE_CONSTITUTION,STATE_RULES]","before":"open","detail":"`corpusType` on `resolve_statute_citation` narrowed to a closed enum (CONSTITUTION, REGULATION, STATE, STATE_CONSTITUTION, STATE_RULES); previously valid values may now be rejected.","severity":"breaking"},{"kind":"enum_value_added","path":"inputSchema.properties.fields","tool":"search_us_statutes","after":"effectiveDateRaw","detail":"Enum value `effectiveDateRaw` added to `fields` on `search_us_statutes`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.fields","tool":"search_us_statutes","after":"expirationDateRaw","detail":"Enum value `expirationDateRaw` added to `fields` on `search_us_statutes`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.fields","tool":"search_us_statutes","after":"issueDateRaw","detail":"Enum value `issueDateRaw` added to `fields` on `search_us_statutes`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.fields","tool":"search_us_statutes","after":"originalEnactmentDateRaw","detail":"Enum value `originalEnactmentDateRaw` added to `fields` on `search_us_statutes`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.fields","tool":"search_us_statutes","after":"rescindedOnRaw","detail":"Enum value `rescindedOnRaw` added to `fields` on `search_us_statutes`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.fields","tool":"search_us_statutes","after":"signingDateRaw","detail":"Enum value `signingDateRaw` added to `fields` on `search_us_statutes`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.source","tool":"search_us_statutes","after":"ftc_advocacy_filing","detail":"Enum value `ftc_advocacy_filing` added to `source` on `search_us_statutes`.","severity":"risky"},{"kind":"enum_value_added","path":"inputSchema.properties.source","tool":"search_us_statutes","after":"ftc_hsr_interpretation","detail":"Enum value `ftc_hsr_interpretation` added to `source` on `search_us_statutes`.","severity":"risky"}],"published_at":"2026-09-14T19:09:18.071Z"},{"slug":"ZV-2026-0638","server_name":"mcp.vaquill.ai","severity":"breaking","title":"mcp.vaquill.ai: Tool get_citation_network was removed.","summary":"[breaking] Tool get_citation_network was removed. [breaking] Tool list_statutes_laws was removed. [breaking] Tool lookup_case was removed. [breaking] Tool quick_search was removed. [breaking] Tool resolve_citation was removed. [breaking] Tool search_legal_cases was removed. [safe] Tool fetch was added. [safe] Tool resolve_statute_citations_batch was added. [safe] Tool search was added. [safe] Description of create_watch changed (2% word delta). [breaking] Field act_ids was removed from create_watch input; consumers still sending it may be rejected or silently ignored. [breaking] Field corpus_type was removed from create_watch input; consumers still sending it may be rejected or silently ignored. [breaking] Field webhook_url was removed from create_watch input; consumers still sending it may be rejected or silently ignored. [breaking] Field email_address was removed from create_watch input; consumers still sending it may be rejected or silently ignored. [breaking] New required field corpusType on create_watch; requests without it will fail. [risky] Optional field emailAddress was added to create_watch; may shift model behaviour. [risky] Optional field scope was added to create_watch; may shift model behaviour. [risky] Optional field webhookAuth was added to create_watch; may shift model behaviour. [risky] Optional field webhookSecret was added to create_watch; may shift model behaviour. [risky] Optional field webhookUrl was added to create_watch; may shift model behaviour. [safe] Field channel on create_watch is no longer required. [breaking] state on create_watch narrowed to a closed enum (federal, al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj, nm, ny, nc, nd, oh, ok, or, pa, pr, ri, sc, sd, tn, tx, ut, vt, va, wa, wv, wi, wy); previously valid values may now be rejected. [risky] Default of state on create_watch changed null → unset. [risky] Default of channel on create_watch changed unset ","changes":[{"kind":"tool_removed","tool":"get_citation_network","detail":"Tool `get_citation_network` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_statutes_laws","detail":"Tool `list_statutes_laws` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"lookup_case","detail":"Tool `lookup_case` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"quick_search","detail":"Tool `quick_search` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"resolve_citation","detail":"Tool `resolve_citation` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"search_legal_cases","detail":"Tool `search_legal_cases` was removed.","severity":"breaking"},{"kind":"tool_added","tool":"fetch","detail":"Tool `fetch` was added.","severity":"safe"},{"kind":"tool_added","tool":"resolve_statute_citations_batch","detail":"Tool `resolve_statute_citations_batch` was added.","severity":"safe"},{"kind":"tool_added","tool":"search","detail":"Tool `search` was added.","severity":"safe"},{"kind":"description_changed","tool":"create_watch","after":"Subscribe to a board so a change to that source notifies you. Delivery is by webhook (HMAC-SHA256 signed) or email, fired when the source's existing refresh finds real changes -- nothing is crawled on your behalf and there is no real-time trigger. channel is immutable once set; to change it, delete and recreate. Free.","before":"Subscribe to a board so a change to that source notifies you. Delivery is by webhook (HMAC-SHA256 signed) or email, fired when the source's existing refresh finds real changes -- nothing is crawled on your behalf and there is no real-time trigger. channel is immutable once set; to change it, delete and recreate.","detail":"Description of `create_watch` changed (2% word delta).","severity":"safe","descriptionDelta":0.021739130434782594},{"kind":"input_property_removed","path":"inputSchema.properties.act_ids","tool":"create_watch","before":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null},"detail":"Field `act_ids` was removed from `create_watch` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.corpus_type","tool":"create_watch","before":{"type":"string"},"detail":"Field `corpus_type` was removed from `create_watch` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.webhook_url","tool":"create_watch","before":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"detail":"Field `webhook_url` was removed from `create_watch` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.email_address","tool":"create_watch","before":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"detail":"Field `email_address` was removed from `create_watch` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_required_added","path":"inputSchema.properties.corpusType","tool":"create_watch","after":{"type":"string","description":"Board's corpus_type (e.g. `state`, `state_regulation`, `federal_register`, `agency_guidance`), matched case-insensitively so `USC` / `CFR` work too. Call list_boards for the authoritative list: this is a growing set, not a fixed enum, and not every corpus is a watchable board."},"detail":"New required field `corpusType` on `create_watch`; requests without it will fail.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.emailAddress","tool":"create_watch","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Required when channel is email or both."},"detail":"Optional field `emailAddress` was added to `create_watch`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.scope","tool":"create_watch","after":{"anyOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"null"}],"description":"Narrow the alert to one citation instead of a whole source. Three mutually exclusive forms. Hierarchy prefix: `{\"title\": \"21\", \"part\": \"314\"}`, where every level set must match and `title` is required whenever a narrower level is set. Exact section: `{\"actId\": \"CFR_T21_P314_S314_50\"}`, validated at create time and the only form EVERY source accepts, including flat ones. Named source: `{\"source\": \"fdic_fil\"}`, accepted on `agency_guidance`, `agency_manuals` and `cfr` only. Omit to watch the whole source."},"detail":"Optional field `scope` was added to `create_watch`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.webhookAuth","tool":"create_watch","after":{"anyOf":[{"type":"object","properties":{"scheme":{"enum":["none","bearer","basic","header"],"type":"string","default":"none","description":"`bearer` sends `Authorization: Bearer <secret>`. `basic` sends `Authorization: Basic <secret>` with the secret already base64-encoded by you. `header` sends `<headerName>: <secret>`, for gateways that read something like `X-Api-Key`. `none` removes any credential currently stored."},"secret":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The credential value. Stored encrypted and never returned. Required when setting a scheme for the first time or changing scheme; on PATCH you may omit it to keep the stored one while changing only `headerName`."},"headerName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Header to send the credential on. Required for `header`, and rejected for every other scheme. Cannot be `Authorization` (use `bearer`/`basic`), a transport header, or one of ours."}},"description":"How a delivery should authenticate itself to your endpoint.\n\nSEPARATE FROM `webhookSecret`, and the distinction is the point.\n`webhookSecret` signs the body so you can prove it is intact and ours.\nThis sends a credential so your gateway can reject anything else before\nit reaches your handler. Most integrations want the second, many want\nboth, and the two are set independently."},{"type":"null"}],"description":"Optional outbound credential sent on every delivery, so your gateway can authenticate us with the header it already reads. Independent of `webhookSecret`: set neither, either, or both. Only valid on a webhook or both channel watch."},"detail":"Optional field `webhookAuth` was added to `create_watch`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.webhookSecret","tool":"create_watch","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional signing secret, stored encrypted and never returned. Every delivery then carries `X-Vaquill-Signature: sha256=<hex>`, an HMAC-SHA256 of the raw request body bytes keyed with this secret. Verify over the raw body before parsing JSON, constant-time."},"detail":"Optional field `webhookSecret` was added to `create_watch`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.webhookUrl","tool":"create_watch","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Required when channel is webhook or both."},"detail":"Optional field `webhookUrl` was added to `create_watch`; may shift model behaviour.","severity":"risky"},{"kind":"input_required_removed","path":"inputSchema.required.channel","tool":"create_watch","detail":"Field `channel` on `create_watch` is no longer required.","severity":"safe"},{"kind":"enum_narrowed","path":"inputSchema.properties.state","tool":"create_watch","after":"enum[federal,al,ak,az,ar,ca,co,ct,de,dc,fl,ga,hi,id,il,in,ia,ks,ky,la,me,md,ma,mi,mn,ms,mo,mt,ne,nv,nh,nj,nm,ny,nc,nd,oh,ok,or,pa,pr,ri,sc,sd,tn,tx,ut,vt,va,wa,wv,wi,wy]","before":"open","detail":"`state` on `create_watch` narrowed to a closed enum (federal, al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj, nm, ny, nc, nd, oh, ok, or, pa, pr, ri, sc, sd, tn, tx, ut, vt, va, wa, wv, wi, wy); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.state","tool":"create_watch","before":null,"detail":"Default of `state` on `create_watch` changed null → unset.","severity":"risky"},{"kind":"default_changed","path":"inputSchema.properties.channel","tool":"create_watch","after":"webhook","detail":"Default of `channel` on `create_watch` changed unset → \"webhook\".","severity":"risky"},{"kind":"description_changed","tool":"delete_watch","after":"Delete a watch you own. Immediate and permanent, and its delivery history goes with it. To stop notifications without losing the config or history, prefer update_watch with isActive false. Free.","before":"Delete a watch you own. Immediate and permanent, and its delivery history goes with it. To stop notifications without losing the config or history, prefer update_watch with isActive false.","detail":"Description of `delete_watch` changed (4% word delta).","severity":"safe","descriptionDelta":0.03703703703703709},{"kind":"description_changed","tool":"get_section_changes","after":"What our refreshes have observed changing on one section over time: when it was added, amended or removed, newest first. This is our capture history, not the publisher's -- an empty list means we recorded no change, never that the section was never amended. For the publisher's own history, read amendmentHistory on the section. Cost: 1 credit.","before":"What our refreshes have observed changing on one section over time: when it was added, amended or removed, newest first. This is our capture history, not the publisher's -- an empty list means we recorded no change, never that the section was never amended. For the publisher's own history, read amendmentHistory on the section.","detail":"Description of `get_section_changes` changed (7% word delta).","severity":"safe","descriptionDelta":0.06666666666666665},{"kind":"input_property_added","path":"inputSchema.properties.beforeId","tool":"get_section_changes","after":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Return only changes with an `id` less than this: the cursor for walking BACK through history, which is what a newest-first reader needs. Pass the smallest `id` on your last page."},"detail":"Optional field `beforeId` was added to `get_section_changes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.changeKind","tool":"get_section_changes","after":{"anyOf":[{"type":"array","items":{"enum":["added","amended","removed"],"type":"string"}},{"type":"null"}],"description":"Filter to these kinds. Repeat the parameter to pass several (`?changeKind=amended&changeKind=removed`). Omit for all three."},"detail":"Optional field `changeKind` was added to `get_section_changes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.limit","tool":"get_section_changes","after":{"type":"integer","default":50,"maximum":200,"minimum":1,"description":"Max changes to return on this page."},"detail":"Optional field `limit` was added to `get_section_changes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.order","tool":"get_section_changes","after":{"enum":["asc","desc"],"type":"string","default":"desc","description":"`desc` (default) is newest first, the natural reading order for a history. Use `asc` to replay a section's life forward, or when catching up from a cursor."},"detail":"Optional field `order` was added to `get_section_changes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.sinceId","tool":"get_section_changes","after":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Return only changes with an `id` greater than this: the cursor for polling forward into new changes. Ids are a monotonic sequence, so this is exact, immune to clock skew, and cannot drop two changes that share a timestamp. Carry `cursor` forward."},"detail":"Optional field `sinceId` was added to `get_section_changes`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"get_section_cited_by","after":"The USC and CFR sections whose text cross-references a given section: the inverse of the crossReferences already returned on a section lookup. Use to find where a definition or requirement is actually invoked, or to gauge how load-bearing a provision is across the code. Cost: 2 credits.","before":"The USC and CFR sections whose text cross-references a given section: the inverse of the crossReferences already returned on a section lookup. Use to find where a definition or requirement is actually invoked, or to gauge how load-bearing a provision is across the code.","detail":"Description of `get_section_cited_by` changed (8% word delta).","severity":"safe","descriptionDelta":0.07692307692307687},{"kind":"default_changed","path":"inputSchema.properties.limit","tool":"get_section_cited_by","after":25,"before":20,"detail":"Default of `limit` on `get_section_cited_by` changed 20 → 25.","severity":"risky"},{"kind":"description_changed","tool":"get_section_cross_state","after":"Provisions in OTHER states that address the same subject as a given state statute section, ranked by similarity. State statutes only. Use for fifty-state surveys, multi-jurisdiction compliance, or to check whether a client's home-state rule is typical or an outlier. Cost: 6 credits.","before":"Provisions in OTHER states that address the same subject as a given state statute section, ranked by similarity. State statutes only. Use for fifty-state surveys, multi-jurisdiction compliance, or to check whether a client's home-state rule is typical or an outlier.","detail":"Description of `get_section_cross_state` changed (7% word delta).","severity":"safe","descriptionDelta":0.0714285714285714},{"kind":"default_changed","path":"inputSchema.properties.limit","tool":"get_section_cross_state","after":5,"before":10,"detail":"Default of `limit` on `get_section_cross_state` changed 10 → 5.","severity":"risky"},{"kind":"description_changed","tool":"get_section_definitions","after":"The term definitions that govern a section, parsed from its chapter's definitions section. Use whenever a provision turns on a term of art ('covered entity', 'security', 'employer') and you need the statute's own definition rather than the ordinary meaning. Cost: 4 credits.","before":"The term definitions that govern a section, parsed from its chapter's definitions section. Use whenever a provision turns on a term of art ('covered entity', 'security', 'employer') and you need the statute's own definition rather than the ordinary meaning.","detail":"Description of `get_section_definitions` changed (8% word delta).","severity":"safe","descriptionDelta":0.08333333333333337},{"kind":"description_changed","tool":"get_section_neighbors","after":"The sections immediately before and after a given section within its own chapter or code, in statutory order. Use to read a provision in context, to find a definitions or penalties sibling, or to check whether the operative language continues into the next section. Cost: 2 credits.","before":"The sections immediately before and after a given section within its own chapter or code, in statutory order. Use to read a provision in context, to find a definitions or penalties sibling, or to check whether the operative language continues into the next section.","detail":"Description of `get_section_neighbors` changed (8% word delta).","severity":"safe","descriptionDelta":0.08108108108108103},{"kind":"default_changed","path":"inputSchema.properties.limit","tool":"get_section_neighbors","after":3,"before":5,"detail":"Default of `limit` on `get_section_neighbors` changed 5 → 3.","severity":"risky"},{"kind":"description_changed","tool":"get_sections_batch","after":"Metadata for up to 50 sections in one call, by a list of act_ids. Same fields as get_us_statute_section. Use instead of looping that tool when you already hold several act_ids, for example every result of one search. Sections that are not found are skipped and not charged. Cost: 2 credits.","before":"Metadata for up to 50 sections in one call, by a list of act_ids. Same fields as get_us_statute_section. Use instead of looping that tool when you already hold several act_ids, for example every result of one search. Sections that are not found are skipped and not charged.","detail":"Description of `get_sections_batch` changed (7% word delta).","severity":"safe","descriptionDelta":0.07317073170731703},{"kind":"input_property_removed","path":"inputSchema.properties.act_ids","tool":"get_sections_batch","before":{"type":"array","items":{"type":"string"}},"detail":"Field `act_ids` was removed from `get_sections_batch` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_required_added","path":"inputSchema.properties.actIds","tool":"get_sections_batch","after":{"type":"array","items":{"type":"string"},"maxItems":50,"minItems":1,"description":"Section identifiers from a prior search, up to 50 per call. Duplicates are collapsed and order is preserved. DO NOT BUILD THESE FROM A CITATION: the chapter/article segments exist only in the data, so assembled ids miss. To start from a citation, use resolve_statute_citation."},"detail":"New required field `actIds` on `get_sections_batch`; requests without it will fail.","severity":"breaking"},{"kind":"description_changed","tool":"get_us_statute_section","after":"Metadata for one US statute, regulation or rule section by act_id: citation, title hierarchy, breadcrumb, amendment history, and links to HTML, PDF and XML. Does NOT include the section text -- use get_us_statute_section_text for that. Good for confirming you have the right section before paying for its full body. Cost: 2 credits.","before":"Metadata for one US statute, regulation or rule section by act_id: citation, title hierarchy, breadcrumb, amendment history, and links to HTML, PDF and XML. Does NOT include the section text -- use get_us_statute_section_text for that. Good for confirming you have the right section before paying for its full body.","detail":"Description of `get_us_statute_section` changed (7% word delta).","severity":"safe","descriptionDelta":0.06818181818181823},{"kind":"description_changed","tool":"get_us_statute_section_text","after":"The full text of a US statute, regulation or rule section by act_id. Returns styled HTML (with cross-references and paragraph numbering as officially published) and plain text. Use when you need the actual statutory language to quote, draft against, or analyze rather than just cite. Cost: 6 credits.","before":"The full text of a US statute, regulation or rule section by act_id. Returns styled HTML (with cross-references and paragraph numbering as officially published) and plain text. Use when you need the actual statutory language to quote, draft against, or analyze rather than just cite.","detail":"Description of `get_us_statute_section_text` changed (7% word delta).","severity":"safe","descriptionDelta":0.06666666666666665},{"kind":"input_property_added","path":"inputSchema.properties.asOf","tool":"get_us_statute_section_text","after":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}],"description":"Return the section's text as it stood on this date (`YYYY-MM-DD`) instead of today's. Same cost.\n\n**This is a reconstruction, not an archive.** The corpus holds one current text per citation; an earlier one is rebuilt from the before-side of the first change we OBSERVED after your date. The `asOf` block on the response says which version you got (`source`), what it rests on (`basisChangeId`), how far back the evidence reaches (`observedFrom`), and whether the answer is bounded by when capture began rather than by the law (`isBounded`). Read `isBounded` before citing the text.\n\nA section that did not exist yet returns `available: false` with `asOf.existed: false`, which is a real answer and is charged. A section we know changed but cannot rebuild returns `source: \"unavailable\"` and IS refunded, because you asked for a historical text and did not get one."},"detail":"Optional field `asOf` was added to `get_us_statute_section_text`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.format","tool":"get_us_statute_section_text","after":{"enum":["both","html","plain"],"type":"string","default":"both","description":"Which representations to return. A long section carries the same text twice by default, so `plain` or `html` roughly halves the payload. Cost is unchanged: the fetch is the same either way."},"detail":"Optional field `format` was added to `get_us_statute_section_text`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.structured","tool":"get_us_statute_section_text","after":{"type":"boolean","default":false,"description":"When true, also return `markdown` and a `subsections` tree parsed from the text for pincite addressing. Same cost."},"detail":"Optional field `structured` was added to `get_us_statute_section_text`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"get_watch_change_diff","after":"The full text of a changed section BEFORE and AFTER one specific change, as whole documents ready to diff. Only meaningful where hasDiff is true on the change list. A missing side is not an error: hasBefore and hasAfter say which text is present, so render 'diff unavailable' rather than treating null as a failure. Unlike the rest of the law-change tools this one returns section text, so check its cost before looping over a change list. Cost: 4 credits.","before":"The full text of a changed section BEFORE and AFTER one specific change, as whole documents ready to diff. Only meaningful where hasDiff is true on the change list. A missing side is not an error: hasBefore and hasAfter say which text is present, so render 'diff unavailable' rather than treating null as a failure. Unlike the rest of the law-change tools this one returns section text, so check its cost before looping over a change list.","detail":"Description of `get_watch_change_diff` changed (3% word delta).","severity":"safe","descriptionDelta":0.03448275862068961},{"kind":"input_type_changed","path":"inputSchema.properties.change_id","tool":"get_watch_change_diff","after":"integer","before":"string","detail":"Type of `change_id` on `get_watch_change_diff` changed string → integer.","severity":"breaking"},{"kind":"description_changed","tool":"list_boards","after":"List every watchable board: a tracked corpus source such as the Federal Register, the CFR, or one state's statutes, with its refresh cadence. A board is identified by corpusType plus state (state is null for federal). Use to discover what can be subscribed to before calling create_watch. Free.","before":"List every watchable board: a tracked corpus source such as the Federal Register, the CFR, or one state's statutes, with its refresh cadence. A board is identified by corpusType plus state (state is null for federal). Use to discover what can be subscribed to before calling create_watch.","detail":"Description of `list_boards` changed (2% word delta).","severity":"safe","descriptionDelta":0.024390243902439046},{"kind":"input_property_removed","path":"inputSchema.properties.corpus_type","tool":"list_boards","before":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"detail":"Field `corpus_type` was removed from `list_boards` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.corpusType","tool":"list_boards","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only boards for this corpus type, matched case-insensitively so the uppercase spelling used by the statutes endpoints (`CFR`) finds the board (`cfr`). An unknown value is an empty page with `total: 0`, not an error."},"detail":"Optional field `corpusType` was added to `list_boards`; may shift model behaviour.","severity":"risky"},{"kind":"enum_narrowed","path":"inputSchema.properties.state","tool":"list_boards","after":"enum[federal,al,ak,az,ar,ca,co,ct,de,dc,fl,ga,hi,id,il,in,ia,ks,ky,la,me,md,ma,mi,mn,ms,mo,mt,ne,nv,nh,nj,nm,ny,nc,nd,oh,ok,or,pa,pr,ri,sc,sd,tn,tx,ut,vt,va,wa,wv,wi,wy]","before":"open","detail":"`state` on `list_boards` narrowed to a closed enum (federal, al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj, nm, ny, nc, nd, oh, ok, or, pa, pr, ri, sc, sd, tn, tx, ut, vt, va, wa, wv, wi, wy); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.state","tool":"list_boards","before":null,"detail":"Default of `state` on `list_boards` changed null → unset.","severity":"risky"},{"kind":"description_changed","tool":"list_statute_divisions","after":"Walk the statutory hierarchy: list the child divisions (titles, chapters, parts, or sections) under any level, in statutory order. Use to browse a code structurally when you do not yet know the section number, or to enumerate everything under a chapter. Cost: 1 credit.","before":"Walk the statutory hierarchy: list the child divisions (titles, chapters, parts, or sections) under any level, in statutory order. Use to browse a code structurally when you do not yet know the section number, or to enumerate everything under a chapter.","detail":"Description of `list_statute_divisions` changed (8% word delta).","severity":"safe","descriptionDelta":0.08108108108108103},{"kind":"input_property_removed","path":"inputSchema.properties.corpus_type","tool":"list_statute_divisions","before":{"anyOf":[{"enum":["USC","CFR","STATE","CONSTITUTION","FEDERAL_RULES","STATE_CONSTITUTION","STATE_RULES","EXECUTIVE_ACTION","REGULATION","FEDERAL_REGISTER","AGENCY_GUIDANCE","SENTENCING_GUIDELINES","US_TAX_TREATY","STATE_AGENCY_GUIDANCE","SESSION_LAW"],"type":"string"},{"type":"null"}],"default":null},"detail":"Field `corpus_type` was removed from `list_statute_divisions` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.chapter","tool":"list_statute_divisions","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Chapter identifier to drill into (USC and state codes)."},"detail":"Optional field `chapter` was added to `list_statute_divisions`; may shift model behaviour.","severity":"risky"},{"kind":"input_required_added","path":"inputSchema.properties.corpusType","tool":"list_statute_divisions","after":{"enum":["USC","CFR","STATE","REGULATION"],"type":"string","description":"Corpus to browse: USC, CFR, STATE, or REGULATION."},"detail":"New required field `corpusType` on `list_statute_divisions`; requests without it will fail.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.part","tool":"list_statute_divisions","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Part identifier to drill into (CFR)."},"detail":"Optional field `part` was added to `list_statute_divisions`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.titleNumber","tool":"list_statute_divisions","after":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"USC/CFR title number to drill into."},"detail":"Optional field `titleNumber` was added to `list_statute_divisions`; may shift model behaviour.","severity":"risky"},{"kind":"default_changed","path":"inputSchema.properties.code","tool":"list_statute_divisions","before":null,"detail":"Default of `code` on `list_statute_divisions` changed null → unset.","severity":"risky"},{"kind":"enum_narrowed","path":"inputSchema.properties.state","tool":"list_statute_divisions","after":"enum[al,ak,az,ar,ca,co,ct,de,dc,fl,ga,hi,id,il,in,ia,ks,ky,la,me,md,ma,mi,mn,ms,mo,mt,ne,nv,nh,nj,nm,ny,nc,nd,oh,ok,or,pa,pr,ri,sc,sd,tn,tx,ut,vt,va,wa,wv,wi,wy]","before":"open","detail":"`state` on `list_statute_divisions` narrowed to a closed enum (al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj, nm, ny, nc, nd, oh, ok, or, pa, pr, ri, sc, sd, tn, tx, ut, vt, va, wa, wv, wi, wy); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.state","tool":"list_statute_divisions","before":null,"detail":"Default of `state` on `list_statute_divisions` changed null → unset.","severity":"risky"},{"kind":"description_changed","tool":"list_statutes_coverage","after":"Self-describing coverage matrix: every corpusType we hold and its per-jurisdiction section counts. Use before answering a jurisdiction question to check whether we actually cover that state and that body of law, so you can say so instead of searching a corpus that does not exist. Free.","before":"Self-describing coverage matrix: every corpusType we hold and its per-jurisdiction section counts. Use before answering a jurisdiction question to check whether we actually cover that state and that body of law, so you can say so instead of searching a corpus that does not exist.","detail":"Description of `list_statutes_coverage` changed (3% word delta).","severity":"safe","descriptionDelta":0.025000000000000022},{"kind":"description_changed","tool":"list_watch_changes","after":"What a watched source added, amended or removed: section identifier, citation, title and detection time, newest first. Metadata only, never section text. Covers the board's whole captured history, not just since you subscribed. Safe to poll: it writes nothing and cannot suppress or double-fire a delivery. Page with sinceId and the returned cursor. Free.","before":"What a watched source added, amended or removed: section identifier, citation, title and detection time, newest first. Metadata only, never section text. Covers the board's whole captured history, not just since you subscribed. Safe to poll: it writes nothing and cannot suppress or double-fire a delivery. Page with sinceId and the returned cursor.","detail":"Description of `list_watch_changes` changed (2% word delta).","severity":"safe","descriptionDelta":0.020000000000000018},{"kind":"input_property_removed","path":"inputSchema.properties.offset","tool":"list_watch_changes","before":{"type":"integer","default":0},"detail":"Field `offset` was removed from `list_watch_changes` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.beforeId","tool":"list_watch_changes","after":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Return only changes with an `id` below this: the cursor for walking BACK through history, where `sinceId` walks forward into new ones. Pass the smallest `id` on your last page."},"detail":"Optional field `beforeId` was added to `list_watch_changes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.changeKind","tool":"list_watch_changes","after":{"anyOf":[{"type":"array","items":{"enum":["added","amended","removed"],"type":"string"}},{"type":"null"}],"description":"Filter to these kinds. Repeat the parameter to pass several (`?changeKind=added&changeKind=amended`). Omit for all three."},"detail":"Optional field `changeKind` was added to `list_watch_changes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.order","tool":"list_watch_changes","after":{"enum":["asc","desc"],"type":"string","default":"desc","description":"`desc` (default) is newest first, for showing a recent-activity list. Use `asc` when catching up from a cursor: walking forward means a page that hits `limit` leaves the gap at a known end."},"detail":"Optional field `order` was added to `list_watch_changes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.since","tool":"list_watch_changes","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Return only changes detected strictly after this ISO-8601 timestamp. Coarser than `sinceId` (a single refresh writes many rows at the same instant), but useful when all you kept was the `detectedAt` from a webhook body. Both may be combined."},"detail":"Optional field `since` was added to `list_watch_changes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.sinceId","tool":"list_watch_changes","after":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Return only changes with an `id` greater than this. The cursor to build on: ids are a monotonic sequence, so this is exact, immune to clock skew, and cannot drop two changes that share a timestamp. Carry `meta.cursor` forward from your last page."},"detail":"Optional field `sinceId` was added to `list_watch_changes`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"list_watch_deliveries","after":"Per-attempt delivery log for one watch: status code, error and attempt number, retained 90 days. Webhook watches only -- an email-only watch always returns an empty list, because email sends are not logged per attempt. Use to debug a webhook that is not arriving. Free.","before":"Per-attempt delivery log for one watch: status code, error and attempt number, retained 90 days. Webhook watches only -- an email-only watch always returns an empty list, because email sends are not logged per attempt. Use to debug a webhook that is not arriving.","detail":"Description of `list_watch_deliveries` changed (3% word delta).","severity":"safe","descriptionDelta":0.027027027027026973},{"kind":"input_property_removed","path":"inputSchema.properties.offset","tool":"list_watch_deliveries","before":{"type":"integer","default":0},"detail":"Field `offset` was removed from `list_watch_deliveries` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"description_changed","tool":"list_watches","after":"List the board watches you own, with their board, channel, destination, active state and the outcome of the last delivery attempt. Use to find a watchId for the other watch tools. Free.","before":"List the board watches you own, with their board, channel, destination, active state and the outcome of the last delivery attempt. Use to find a watchId for the other watch tools.","detail":"Description of `list_watches` changed (4% word delta).","severity":"safe","descriptionDelta":0.0357142857142857},{"kind":"description_changed","tool":"resolve_statute_citation","after":"Resolve a Bluebook citation string ('42 U.S.C. 1983', '16 C.F.R. 444.1', 'Cal. Code Regs. tit. 22, 76227') to the exact section, confirmed, with an official source link and the act_id. Use this whenever the user gives you a citation rather than a question -- it is far more reliable than searching for the citation text. Cost: 2 credits, 2 credits (batch).","before":"Resolve a Bluebook citation string ('42 U.S.C. 1983', '16 C.F.R. 444.1', 'Cal. Code Regs. tit. 22, 76227') to the exact section, confirmed, with an official source link and the act_id. Use this whenever the user gives you a citation rather than a question -- it is far more reliable than searching for the citation text.","detail":"Description of `resolve_statute_citation` changed (7% word delta).","severity":"safe","descriptionDelta":0.07407407407407407},{"kind":"input_property_removed","path":"inputSchema.properties.citation","tool":"resolve_statute_citation","before":{"type":"string"},"detail":"Field `citation` was removed from `resolve_statute_citation` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_required_added","path":"inputSchema.properties.cite","tool":"resolve_statute_citation","after":{"type":"string","maxLength":200,"minLength":2,"description":"A Bluebook citation string, e.g. '42 U.S.C. 1983' or '16 C.F.R. 444.1'."},"detail":"New required field `cite` on `resolve_statute_citation`; requests without it will fail.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.corpusType","tool":"resolve_statute_citation","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional corpus to resolve WITHIN: `STATE`, `REGULATION`, `STATE_RULES`, `CONSTITUTION`, `STATE_CONSTITUTION`. Narrows a citation whose form several corpora share; like `state`, a citation belonging to another corpus resolves to nothing instead."},"detail":"Optional field `corpusType` was added to `resolve_statute_citation`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.state","tool":"resolve_statute_citation","after":{"anyOf":[{"type":"string","maxLength":2,"minLength":2},{"type":"null"}],"description":"Optional 2-letter jurisdiction to resolve WITHIN, e.g. `tx`. Some citation forms are shared: `8 CCR 1206-2` is Colorado and `22 CCR 76227` is California. A constraint, not a hint: a citation naming a different jurisdiction returns `resolved: false` rather than being forced into this one."},"detail":"Optional field `state` was added to `resolve_statute_citation`; may shift model behaviour.","severity":"risky"},{"kind":"description_changed","tool":"search_us_statutes","after":"Semantic + keyword search across US primary law: the United States Code (USC), the Code of Federal Regulations (CFR), and all 50 states' statutes, regulations, constitutions and court rules. Use for any 'what does the law say' question. Filter by corpusType and titleNumber. Returns sections with citation, hierarchy and official source links. The returned act_id (e.g. 'USC_T42_C21_S1983') feeds every other statute tool -- do not hand-build one, they usually 404. Cost: 4 credits.","before":"Semantic + keyword search across US primary law: the United States Code (USC), the Code of Federal Regulations (CFR), and all 50 states' statutes, regulations, constitutions and court rules. Use for any 'what does the law say' question. Filter by corpusType and titleNumber. Returns sections with citation, hierarchy and official source links. The returned act_id (e.g. 'USC_T42_C21_S1983') feeds every other statute tool -- do not hand-build one, they usually 404.","detail":"Description of `search_us_statutes` changed (5% word delta).","severity":"safe","descriptionDelta":0.04761904761904767},{"kind":"input_property_removed","path":"inputSchema.properties.corpus_type","tool":"search_us_statutes","before":{"anyOf":[{"enum":["USC","CFR","STATE","CONSTITUTION","FEDERAL_RULES","STATE_CONSTITUTION","STATE_RULES","EXECUTIVE_ACTION","REGULATION","FEDERAL_REGISTER","AGENCY_GUIDANCE","SENTENCING_GUIDELINES","US_TAX_TREATY","STATE_AGENCY_GUIDANCE","SESSION_LAW"],"type":"string"},{"type":"null"}],"default":null},"detail":"Field `corpus_type` was removed from `search_us_statutes` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.title_number","tool":"search_us_statutes","before":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null},"detail":"Field `title_number` was removed from `search_us_statutes` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.actStatus","tool":"search_us_statutes","after":{"enum":["abolished","deleted","expired","in_force","inactive","not_funded","not_yet_effective","omitted","proposed","recodified","recompiled","rejected","relocated","removed","renumbered","repealed","rescinded","reserved","revoked","superseded","terminated","transferred","unconstitutional","vacant","vetoed","withdrawn"],"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Positively scope to raw publisher statuses: `repealed` for dead law only, `in_force` for sections affirmatively marked current. The inverse of `excludeRepealed`, and what a compliance diff asking what was LOST needs. Combining a dead status with `excludeRepealed: true` is rejected 422."},"detail":"Optional field `actStatus` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.agency","tool":"search_us_statutes","after":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Federal Register agency slug, e.g. `environmental-protection-agency`. Pass a list to match any of several. Applies to `FEDERAL_REGISTER` and `EXECUTIVE_ACTION`; other corpora carry no agency, so combining this with them returns nothing."},"detail":"Optional field `agency` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.changedSince","tool":"search_us_statutes","after":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}],"description":"Only sections we OBSERVED changing on or after this date (`YYYY-MM-DD`). Observed, not effective: the date we saw it, an upper bound on when it took effect. Capture began long after the corpus did and events sweep at 24 months, so empty means no captured change, never that nothing was amended."},"detail":"Optional field `changedSince` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.chapter","tool":"search_us_statutes","after":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"One or more chapters within a title or code, e.g. `21` for USC Title 42 Chapter 21. Pass a hit's `parent.chapter` back to search its neighbors. Chapter numbers repeat across titles, so pair with `titleNumber` (USC) or `code` (state); an unpaired chapter is rejected."},"detail":"Optional field `chapter` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.corpusType","tool":"search_us_statutes","after":{"anyOf":[{"enum":["USC","CFR","STATE","CONSTITUTION","FEDERAL_RULES","STATE_CONSTITUTION","STATE_RULES","EXECUTIVE_ACTION","REGULATION","FEDERAL_REGISTER","AGENCY_GUIDANCE","SENTENCING_GUIDELINES","US_TAX_TREATY","STATE_AGENCY_GUIDANCE","SESSION_LAW"],"type":"string"},{"type":"array","items":{"enum":["USC","CFR","STATE","CONSTITUTION","FEDERAL_RULES","STATE_CONSTITUTION","STATE_RULES","EXECUTIVE_ACTION","REGULATION","FEDERAL_REGISTER","AGENCY_GUIDANCE","SENTENCING_GUIDELINES","US_TAX_TREATY","STATE_AGENCY_GUIDANCE","SESSION_LAW"],"type":"string"}},{"type":"null"}],"description":"Restrict to one corpus, or several as a list. Federal: `USC`, `CFR`, `CONSTITUTION`, `FEDERAL_RULES`, `FEDERAL_REGISTER`, `EXECUTIVE_ACTION`, `SENTENCING_GUIDELINES`, `US_TAX_TREATY`, `SESSION_LAW` (Statutes at Large, as enacted). Pair with `state`: `STATE`, `REGULATION`, `STATE_RULES`, `STATE_CONSTITUTION`, `STATE_AGENCY_GUIDANCE`. Omit for all."},"detail":"Optional field `corpusType` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.documentType","tool":"search_us_statutes","after":{"anyOf":[{"enum":["final","proposed","presidential"],"type":"string"},{"type":"null"}],"description":"Federal Register document stage: `final` (a rule in force), `proposed` (an NPRM), or `presidential` (a Presidential Document, the `EXECUTIVE_ACTION` corpus). Previously visible only as an `actId` prefix (`FR_RULE_` vs `FR_PRORULE_`) with no way to filter."},"detail":"Optional field `documentType` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.excerptChars","tool":"search_us_statutes","after":{"type":"integer","default":500,"maximum":4000,"minimum":100,"description":"Characters of matching text to include in each result's `excerpt`. The excerpt is a ranking preview; use `/us/statutes/section/{actId}/body` for the full text. Default 500."},"detail":"Optional field `excerptChars` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.excludeRepealed","tool":"search_us_statutes","after":{"type":"boolean","default":false,"description":"Drop sections whose own status says they are not operative (repealed, renumbered, transferred, expired, superseded, omitted, and the rest). Removes what we KNOW is dead; it does not promise the remainder is good law. Read `goodLawStatus` per result to tell them apart: `good_law` is checked, `unknown` is unchecked."},"detail":"Optional field `excludeRepealed` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.fields","tool":"search_us_statutes","after":{"enum":["abstract","actId","actStatus","action","adoptingCitations","agencies","agencySlugs","alternateCitations","amendmentHistory","amendmentNote","amendmentYears","amendmentsCount","articleName","articleNumber","audience","breadcrumb","caseName","chapter","chapterName","citation","citationShort","committeeNote","corpusType","crossReferencesCfr","crossReferencesUsc","currencyNote","currencyYear","currentThrough","datesText","displayLabel","displayPath","documentNumber","documentSubtype","documentTypeLabel","docxUrl","edition","effectiveDate","excerpt","expirationDate","externalUrl","federalRegisterCitations","frCommentsCloseOn","frCorrectionOf","frCorrections","frDocketIds","frEffectiveOn","frEndPage","frRegulationIdNumbers","frRegulationsDotGovUrl","frRelatedDocuments","frSignificant","frStartPage","frVolume","goodLawStatus","govInfoHtmlUrl","govInfoPdfUrl","granuleId","history","htmlUrl","implementingRegulations","issueDate","issuingAgency","languageCode","lastAmendedDate","lastAmendedYear","lawImplemented","licenseNote","originalEnactmentDate","packageId","parent","part","partName","pdfUrl","popularName","president","priorEffectiveDates","program","publicLawCites","publicLaws","publicationDate","publisherKey","referencedShortTitles","relatedCitations","releaseDate","relevanceScore","renumberedTo","requesters","rescindedOn","reviewDate","ruleSet","ruleSetCode","sectionNumber","sectionTitle","settlementAmount","signingDate","source","sourceCharEnd","sourceCharStart","sourceCredit","sourceNote","sourcePageEnd","sourcePageStart","state","stateHtmlUrl","statutoryAuthority","subchapter","subchapterName","subject","subjectNumber","subpart","subpartName","subtitle","subtitleName","supersededBy","supersedes","supersessionActions","textUrl","title","titleName","titleNumber","topLevelTitle","topics","transferredTo","versionId","volume","wordCount","xmlUrl","year"],"anyOf":[{"type":"array","items":{"type":"string"},"uniqueItems":true},{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Return only these result fields, e.g. `[\"title\", \"excerpt\"]`. A result carries 40+ fields, most null on any given row. `actId` and `citation` are always included. Unknown names are rejected 422. Omit for the full object."},"detail":"Optional field `fields` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.matchType","tool":"search_us_statutes","after":{"enum":["any","all","phrase"],"type":"string","default":"any","description":"`any` (default) is hybrid semantic + keyword ranking, for natural-language questions. `all` requires every query term; `phrase` matches an exact phrase, for a defined term. To pull up one section, pass its citation as the query and it resolves to that section at rank 1."},"detail":"Optional field `matchType` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.offset","tool":"search_us_statutes","after":{"type":"integer","default":0,"maximum":70,"minimum":0,"description":"How many results to skip, for paging. Every page of a query is cut from one ranking, so results never repeat or go missing between pages. The deepest reachable result is `offset` + `limit`; check `hasMore`."},"detail":"Optional field `offset` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.part","tool":"search_us_statutes","after":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"One or more parts within a title, e.g. `240` for 17 C.F.R. Part 240. The CFR counterpart to `chapter`: pass a hit's `parent.part` back. Pair with `titleNumber`; an unpaired part is rejected."},"detail":"Optional field `part` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.publishedFrom","tool":"search_us_statutes","after":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}],"description":"Only return Federal Register documents published on or after this date (`YYYY-MM-DD`). This is the PUBLICATION date, which is not the same as `yearFrom`: that filters the version year of a section."},"detail":"Optional field `publishedFrom` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.publishedTo","tool":"search_us_statutes","after":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}],"description":"Only return Federal Register documents published on or before this date."},"detail":"Optional field `publishedTo` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.source","tool":"search_us_statutes","after":{"enum":["administrative_guidance","agency_guidance","bis_advisory_opinion","cftc_staff_letter","copyright_circular","cpsc_advisory_opinion","cpsc_secg","ddtc_commodity_jurisdiction","ddtc_guidance","dfars","dfars_pgi","doe_appliance_guidance","doj_justice_manual","doj_leniency","far","fcc_declaratory_ruling","fdic_fil","ferc_policy_statement","fincen_guidance","fincen_ruling","frap","frb_sr_letter","frbp","frcp","frcrp","fre","hhs_ocr_hipaa_faq","hhs_ocr_hipaa_guidance","hhs_ocr_resolution_agreement","irs_announcement","irs_notice","irs_rev_proc","irs_rev_rul","merger_guidelines","mpep","nlrb_advice_memo","nlrb_gc_memo","occ_bulletin","occ_interpretive_letter","sct","ssa_ruling","state_insurance_bulletin","tmep","us_tax_treaty","us_tax_treaty_technical_explanation","uscis_policy_manual"],"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"The named body of law within a `corpusType` that folds several together: `FEDERAL_RULES` into `frcp`/`fre`/`sct`, `CFR` into `far`/`dfars`, `AGENCY_GUIDANCE` into ~34 agency sources. Every result carries its own `source`, so a hit's value can be passed straight back."},"detail":"Optional field `source` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.titleNumber","tool":"search_us_statutes","after":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by USC/CFR title number (e.g., 17 for SEC, 42 for civil rights). Only meaningful for `USC`/`CFR`; ignored for state corpora whose titles are alphabetic (e.g. Texas `pe` = Penal Code)."},"detail":"Optional field `titleNumber` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.yearFrom","tool":"search_us_statutes","after":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1700},{"type":"null"}],"description":"Only sections last amended in or after this year; pair with `yearTo` for a window. Tracks the publisher's own amendment credit, not when we rebuilt the corpus. About a fifth of sections carry no credit and are excluded once either bound is set."},"detail":"Optional field `yearFrom` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.yearTo","tool":"search_us_statutes","after":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1700},{"type":"null"}],"description":"Only sections last amended in or before this year. This filters the LAST amendment, so a section amended in 2025 is excluded by `yearTo=2024` even though it existed in 2024. A currency filter, not point-in-time retrieval."},"detail":"Optional field `yearTo` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"default_changed","path":"inputSchema.properties.code","tool":"search_us_statutes","before":null,"detail":"Default of `code` on `search_us_statutes` changed null → unset.","severity":"risky"},{"kind":"enum_narrowed","path":"inputSchema.properties.state","tool":"search_us_statutes","after":"enum[federal,al,ak,az,ar,ca,co,ct,de,dc,fl,ga,hi,id,il,in,ia,ks,ky,la,me,md,ma,mi,mn,ms,mo,mt,ne,nv,nh,nj,nm,ny,nc,nd,oh,ok,or,pa,pr,ri,sc,sd,tn,tx,ut,vt,va,wa,wv,wi,wy]","before":"open","detail":"`state` on `search_us_statutes` narrowed to a closed enum (federal, al, ak, az, ar, ca, co, ct, de, dc, fl, ga, hi, id, il, in, ia, ks, ky, la, me, md, ma, mi, mn, ms, mo, mt, ne, nv, nh, nj, nm, ny, nc, nd, oh, ok, or, pa, pr, ri, sc, sd, tn, tx, ut, vt, va, wa, wv, wi, wy); previously valid values may now be rejected.","severity":"breaking"},{"kind":"default_changed","path":"inputSchema.properties.state","tool":"search_us_statutes","before":null,"detail":"Default of `state` on `search_us_statutes` changed null → unset.","severity":"risky"},{"kind":"description_changed","tool":"test_watch","after":"Send a synthetic notification to a watch's destination to verify signing, outbound auth and reachability before relying on it. Test deliveries are deliberately not persisted, so they never appear in list_watch_deliveries and never move the watch's last-notified timestamp. Rate limited by a short cooldown. Free.","before":"Send a synthetic notification to a watch's destination to verify signing, outbound auth and reachability before relying on it. Test deliveries are deliberately not persisted, so they never appear in list_watch_deliveries and never move the watch's last-notified timestamp. Rate limited by a short cooldown.","detail":"Description of `test_watch` changed (2% word delta).","severity":"safe","descriptionDelta":0.024390243902439046},{"kind":"description_changed","tool":"update_watch","after":"Change a watch's destination, signing secret, outbound auth, or active state. Set isActive false to pause notifications while keeping the watch's config and history. The channel itself cannot be changed. Free.","before":"Change a watch's destination, signing secret, outbound auth, or active state. Set isActive false to pause notifications while keeping the watch's config and history. The channel itself cannot be changed.","detail":"Description of `update_watch` changed (3% word delta).","severity":"safe","descriptionDelta":0.033333333333333326},{"kind":"input_property_removed","path":"inputSchema.properties.is_active","tool":"update_watch","before":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null},"detail":"Field `is_active` was removed from `update_watch` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.webhook_url","tool":"update_watch","before":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"detail":"Field `webhook_url` was removed from `update_watch` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_removed","path":"inputSchema.properties.email_address","tool":"update_watch","before":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"detail":"Field `email_address` was removed from `update_watch` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"input_property_added","path":"inputSchema.properties.emailAddress","tool":"update_watch","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"New email address. Only valid on an email/both channel watch. Cannot be cleared."},"detail":"Optional field `emailAddress` was added to `update_watch`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.isActive","tool":"update_watch","after":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Pause (false) or resume (true) the watch."},"detail":"Optional field `isActive` was added to `update_watch`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.scope","tool":"update_watch","after":{"anyOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"null"}],"description":"Replace the alert's narrowing. Three mutually exclusive forms. Hierarchy prefix: `{\"title\": \"21\", \"part\": \"314\"}`, where every level set must match and `title` is required whenever a narrower level is set. Exact section: `{\"actId\": \"CFR_T21_P314_S314_50\"}`, the only form EVERY source accepts. Named source: `{\"source\": \"fdic_fil\"}`, on `agency_guidance`, `agency_manuals` and `cfr` only. Omitting the field leaves the current scope unchanged."},"detail":"Optional field `scope` was added to `update_watch`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.webhookAuth","tool":"update_watch","after":{"anyOf":[{"type":"object","properties":{"scheme":{"enum":["none","bearer","basic","header"],"type":"string","default":"none","description":"`bearer` sends `Authorization: Bearer <secret>`. `basic` sends `Authorization: Basic <secret>` with the secret already base64-encoded by you. `header` sends `<headerName>: <secret>`, for gateways that read something like `X-Api-Key`. `none` removes any credential currently stored."},"secret":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The credential value. Stored encrypted and never returned. Required when setting a scheme for the first time or changing scheme; on PATCH you may omit it to keep the stored one while changing only `headerName`."},"headerName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Header to send the credential on. Required for `header`, and rejected for every other scheme. Cannot be `Authorization` (use `bearer`/`basic`), a transport header, or one of ours."}},"description":"How a delivery should authenticate itself to your endpoint.\n\nSEPARATE FROM `webhookSecret`, and the distinction is the point.\n`webhookSecret` signs the body so you can prove it is intact and ours.\nThis sends a credential so your gateway can reject anything else before\nit reaches your handler. Most integrations want the second, many want\nboth, and the two are set independently."},{"type":"null"}],"description":"Replace the outbound credential config, sent as a WHOLE object rather than field by field: a scheme without a credential is not a partial edit, it is a broken config. `{\"scheme\": \"none\"}` removes auth. Keeping the scheme and omitting `secret` retains the stored credential."},"detail":"Optional field `webhookAuth` was added to `update_watch`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.webhookSecret","tool":"update_watch","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"New signing secret, or empty string to stop signing deliveries. Only valid on a webhook/both channel watch."},"detail":"Optional field `webhookSecret` was added to `update_watch`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.webhookUrl","tool":"update_watch","after":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"New webhook URL. Only valid on a webhook/both channel watch. Re-validated against the SSRF blocklist. Cannot be cleared."},"detail":"Optional field `webhookUrl` was added to `update_watch`; may shift model behaviour.","severity":"risky"},{"kind":"resource_added","tool":"vaquill://guide","after":"vaquill://guide","detail":"Resource `vaquill://guide` was added.","severity":"safe"},{"kind":"resource_added","tool":"vaquill://pricing","after":"vaquill://pricing","detail":"Resource `vaquill://pricing` was added.","severity":"safe"},{"kind":"resource_added","tool":"vaquill://us/coverage","after":"vaquill://us/coverage","detail":"Resource `vaquill://us/coverage` was added.","severity":"safe"},{"kind":"prompt_added","tool":"cite_check","after":"cite_check","detail":"Prompt `cite_check` was added.","severity":"safe"},{"kind":"prompt_added","tool":"fifty_state_survey","after":"fifty_state_survey","detail":"Prompt `fifty_state_survey` was added.","severity":"safe"},{"kind":"prompt_added","tool":"good_law_check","after":"good_law_check","detail":"Prompt `good_law_check` was added.","severity":"safe"},{"kind":"prompt_added","tool":"whats_changed","after":"whats_changed","detail":"Prompt `whats_changed` was added.","severity":"safe"}],"published_at":"2026-09-02T16:51:06.321Z"},{"slug":"ZV-2026-0475","server_name":"mcp.vaquill.ai","severity":"breaking","title":"mcp.vaquill.ai: Tool ask_legal_question was removed.","summary":"[breaking] Tool ask_legal_question was removed. [breaking] Tool get_amendments was removed. [breaking] Tool list_legislation was removed. [breaking] Tool search_cases_by_citation was removed. [breaking] Tool search_legislation was removed. [safe] Tool create_watch was added. [safe] Tool delete_watch was added. [breaking] Tool get_act_text was renamed to get_section_changes. [safe] Tool get_section_cited_by was added. [safe] Tool get_section_cross_state was added. [safe] Tool get_section_definitions was added. [safe] Tool get_section_neighbors was added. [safe] Tool get_sections_batch was added. [safe] Tool get_watch_change_diff was added. [safe] Tool list_boards was added. [safe] Tool list_statute_divisions was added. [safe] Tool list_statutes_coverage was added. [safe] Tool list_statutes_laws was added. [safe] Tool list_watch_changes was added. [safe] Tool list_watch_deliveries was added. [safe] Tool list_watches was added. [safe] Tool resolve_statute_citation was added. [safe] Tool test_watch was added. [safe] Tool update_watch was added. [risky] Description of get_act_text changed (97% word delta). [risky] Description of get_citation_network changed (82% word delta). [risky] Description of get_pricing changed (37% word delta). [risky] Description of get_us_statute_section changed (59% word delta). [risky] Description of get_us_statute_section_text changed (42% word delta). [risky] Description of lookup_case changed (80% word delta). [risky] Description of quick_search changed (37% word delta). [risky] Description of resolve_citation changed (71% word delta). [risky] Description of search_legal_cases changed (40% word delta). [risky] Description of search_us_statutes changed (61% word delta). [risky] Optional field code was added to search_us_statutes; may shift model behaviour. [risky] Optional field state was added to search_us_statutes; may shift model behaviour.","changes":[{"kind":"tool_removed","tool":"ask_legal_question","detail":"Tool `ask_legal_question` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"get_amendments","detail":"Tool `get_amendments` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"list_legislation","detail":"Tool `list_legislation` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"search_cases_by_citation","detail":"Tool `search_cases_by_citation` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"search_legislation","detail":"Tool `search_legislation` was removed.","severity":"breaking"},{"kind":"tool_added","tool":"create_watch","detail":"Tool `create_watch` was added.","severity":"safe"},{"kind":"tool_added","tool":"delete_watch","detail":"Tool `delete_watch` was added.","severity":"safe"},{"kind":"tool_renamed","tool":"get_act_text","after":"get_section_changes","before":"get_act_text","detail":"Tool `get_act_text` was renamed to `get_section_changes`.","severity":"breaking"},{"kind":"tool_added","tool":"get_section_cited_by","detail":"Tool `get_section_cited_by` was added.","severity":"safe"},{"kind":"tool_added","tool":"get_section_cross_state","detail":"Tool `get_section_cross_state` was added.","severity":"safe"},{"kind":"tool_added","tool":"get_section_definitions","detail":"Tool `get_section_definitions` was added.","severity":"safe"},{"kind":"tool_added","tool":"get_section_neighbors","detail":"Tool `get_section_neighbors` was added.","severity":"safe"},{"kind":"tool_added","tool":"get_sections_batch","detail":"Tool `get_sections_batch` was added.","severity":"safe"},{"kind":"tool_added","tool":"get_watch_change_diff","detail":"Tool `get_watch_change_diff` was added.","severity":"safe"},{"kind":"tool_added","tool":"list_boards","detail":"Tool `list_boards` was added.","severity":"safe"},{"kind":"tool_added","tool":"list_statute_divisions","detail":"Tool `list_statute_divisions` was added.","severity":"safe"},{"kind":"tool_added","tool":"list_statutes_coverage","detail":"Tool `list_statutes_coverage` was added.","severity":"safe"},{"kind":"tool_added","tool":"list_statutes_laws","detail":"Tool `list_statutes_laws` was added.","severity":"safe"},{"kind":"tool_added","tool":"list_watch_changes","detail":"Tool `list_watch_changes` was added.","severity":"safe"},{"kind":"tool_added","tool":"list_watch_deliveries","detail":"Tool `list_watch_deliveries` was added.","severity":"safe"},{"kind":"tool_added","tool":"list_watches","detail":"Tool `list_watches` was added.","severity":"safe"},{"kind":"tool_added","tool":"resolve_statute_citation","detail":"Tool `resolve_statute_citation` was added.","severity":"safe"},{"kind":"tool_added","tool":"test_watch","detail":"Tool `test_watch` was added.","severity":"safe"},{"kind":"tool_added","tool":"update_watch","detail":"Tool `update_watch` was added.","severity":"safe"},{"kind":"description_changed","tool":"get_act_text","after":"What our refreshes have observed changing on one section over time: when it was added, amended or removed, newest first. This is our capture history, not the publisher's -- an empty list means we recorded no change, never that the section was never amended. For the publisher's own history, read amendmentHistory on the section.","before":"Get URLs for the full text, PDF, and HTML versions of a specific Indian act. Pass the act_id (e.g., 'IND_central_2187' for Indian Contract Act). Returns R2 CDN URLs — fetch the text/PDF content directly from those URLs.","detail":"Description of `get_act_text` changed (97% word delta).","severity":"risky","descriptionDelta":0.9710144927536232},{"kind":"description_changed","tool":"get_citation_network","after":"Citation graph around a US case: both who cites it and what it relies on, with per-node citation counts and treatment hints. Depth 1 is the direct neighbourhood; depth 2 reaches citing-of-citing and costs substantially more. Use to judge whether a case is still good law and how influential it has been.","before":"Traverse the citation network around a case. Returns nodes (cases) and edges (citing relationships) with treatment types (followed, distinguished, overruled). Specify direction: 'outbound' (cases this cites), 'inbound' (cases citing this), or 'both'. Set depth (1-3 hops) and limit (1-100 nodes). Useful for understanding a case's legal influence.","detail":"Description of `get_citation_network` changed (82% word delta).","severity":"risky","descriptionDelta":0.8194444444444444},{"kind":"description_changed","tool":"get_pricing","after":"Current API credit pricing: per-endpoint credit costs and the credit-to-currency conversion rate (1 credit = $0.01 USD). Free, and no authentication required. Use to check what a call will cost before making it.","before":"Get current API credit pricing. Returns per-endpoint credit costs and credit-to-currency conversion rates (1 credit = $0.01 USD). No authentication required. Use to check costs before making API calls.","detail":"Description of `get_pricing` changed (37% word delta).","severity":"risky","descriptionDelta":0.37142857142857144},{"kind":"description_changed","tool":"get_us_statute_section","after":"Metadata for one US statute, regulation or rule section by act_id: citation, title hierarchy, breadcrumb, amendment history, and links to HTML, PDF and XML. Does NOT include the section text -- use get_us_statute_section_text for that. Good for confirming you have the right section before paying for its full body.","before":"Get metadata for a specific US statute or regulation section by act_id (e.g. 'USC_T42_C21_S1983'). The act_id comes from search_us_statutes results or ask_legal_question sources. Returns citation, title hierarchy, breadcrumb, and links to HTML, PDF, and XML formats. Use before get_us_statute_section_text to preview a section.","detail":"Description of `get_us_statute_section` changed (59% word delta).","severity":"risky","descriptionDelta":0.5892857142857143},{"kind":"description_changed","tool":"get_us_statute_section_text","after":"The full text of a US statute, regulation or rule section by act_id. Returns styled HTML (with cross-references and paragraph numbering as officially published) and plain text. Use when you need the actual statutory language to quote, draft against, or analyze rather than just cite.","before":"Get the **full text** of a US statute or regulation section (USC or CFR) by act_id. Returns both styled HTML (with cross-references and paragraph numbering as published in the official code) and plain text. Use when you need the actual statutory language for quotation, drafting, or analysis.","detail":"Description of `get_us_statute_section_text` changed (42% word delta).","severity":"risky","descriptionDelta":0.41509433962264153},{"kind":"description_changed","tool":"lookup_case","after":"Full details for one US case: opinion text, the panel of judges, its citation list and disposition. Use after resolve_citation when you need to read or quote the opinion itself rather than just confirm it exists.","before":"Get full details for a specific case by its citation. Returns comprehensive case metadata, all known citation aliases, and citation treatment statistics showing how many times the case was followed, distinguished, overruled, approved, or referred. Use after resolve_citation or search_cases_by_citation for deep case analysis.","detail":"Description of `lookup_case` changed (80% word delta).","severity":"risky","descriptionDelta":0.7966101694915254},{"kind":"description_changed","tool":"quick_search","after":"Fast, compact US case law search returning the top few results with just the essentials: title, citation, court, year and a short excerpt. Same boolean syntax as search_legal_cases but flatter and cheaper. Best when you need a quick orientation rather than full results.","before":"Fast compact **Indian** legal case search returning top 3-5 results with just the essentials: title, citation, court, year, summary excerpt, and PDF link. Same boolean query syntax as search_legal_cases but returns fewer, flatter results. Best when you need a quick overview rather than detailed results.","detail":"Description of `quick_search` changed (37% word delta).","severity":"risky","descriptionDelta":0.37254901960784315},{"kind":"description_changed","tool":"resolve_citation","after":"Resolve a US case citation ('603 U.S. 369', '410 U.S. 113') to its canonical record, returning the case details and cluster id. Returns found=false rather than an error when the citation cannot be resolved. Use before lookup_case or get_citation_network, both of which want the resolved id.","before":"Resolve any Indian legal citation format to its canonical case record. Accepts SCC, AIR, SCR, MANU, SCALE, INSC formats (e.g., '(2019) 11 SCC 706' or 'AIR 1976 SC 1207'). Returns case details and all known citation aliases/formats. Returns found=false (not an error) when citation cannot be resolved.","detail":"Description of `resolve_citation` changed (71% word delta).","severity":"risky","descriptionDelta":0.7076923076923076},{"kind":"description_changed","tool":"search_legal_cases","after":"Boolean keyword search across 8M+ US federal and state court opinions. Supports AND, OR, NOT and quoted phrases; filter by court and year range. Returns paginated results with citation, court, date, relevance score and a snippet. Present the top results only and do not emphasize the total count. Use pageSize 10 for a conversational answer, 20+ for an exhaustive list.","before":"Boolean keyword search of the **Indian** corpus. Supports AND, OR, NOT and quoted phrases. Filter by courtType (supreme_court, high_court), courtName, year range. Returns paginated results with text, citation, court, relevance score, snippet, PDF. Present only the top results, do NOT emphasize total count. Use pageSize 10 for conversational answers, 20 for exhaustive lists. For US case law, use ask_legal_question with countryCode='US'.","detail":"Description of `search_legal_cases` changed (40% word delta).","severity":"risky","descriptionDelta":0.39682539682539686},{"kind":"description_changed","tool":"search_us_statutes","after":"Semantic + keyword search across US primary law: the United States Code (USC), the Code of Federal Regulations (CFR), and all 50 states' statutes, regulations, constitutions and court rules. Use for any 'what does the law say' question. Filter by corpusType and titleNumber. Returns sections with citation, hierarchy and official source links. The returned act_id (e.g. 'USC_T42_C21_S1983') feeds every other statute tool -- do not hand-build one, they usually 404.","before":"Semantic search across the **United States Code (USC)** and **Code of Federal Regulations (CFR)**. Use for federal statutory and regulatory questions: SEC (Title 17), FDA (Title 21), civil rights (Title 42), tax (Title 26), etc. Filter by corpusType ('USC' | 'CFR') and titleNumber. Returns sections with citation, title hierarchy, HTML/PDF/XML links. The returned act_id (e.g. 'USC_T42_C21_S1983') feeds get_us_statute_section_text for full text.","detail":"Description of `search_us_statutes` changed (61% word delta).","severity":"risky","descriptionDelta":0.6125},{"kind":"input_property_added","path":"inputSchema.properties.code","tool":"search_us_statutes","after":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"detail":"Optional field `code` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.state","tool":"search_us_statutes","after":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"detail":"Optional field `state` was added to `search_us_statutes`; may shift model behaviour.","severity":"risky"}],"published_at":"2026-08-28T08:05:13.495Z"}]