[{"slug":"ZV-2026-1027","server_name":"exchange-production-9123.up.railway.app","severity":"breaking","title":"exchange-production-9123.up.railway.app: Tool dfx_payment_status was removed.","summary":"[breaking] Tool dfx_payment_status was removed. [breaking] Tool fund_dfx_account was removed. [breaking] Tool open_dfx_account was removed. [risky] Description of changes_since changed (37% word delta). [risky] Description of debt_maturity_schedule changed (63% word delta). [breaking] Field authorize was removed from debt_maturity_schedule input; consumers still sending it may be rejected or silently ignored. [safe] Description of dfx_coverage changed (9% word delta). [safe] Description of get_entity changed (19% word delta). [safe] Description of get_family_office changed (12% word delta). [safe] Description of get_independent_sponsor changed (14% word delta). [safe] Description of get_occupancy changed (24% word delta). [safe] Description of get_property_record changed (19% word delta). [safe] Description of get_vc_firm changed (14% word delta). [safe] Description of resolve_address changed (19% word delta). [risky] Description of search_entities changed (34% word delta). [safe] Description of search_events changed (17% word delta). [safe] Description of search_family_offices changed (13% word delta). [safe] Description of search_independent_sponsors changed (14% word delta). [safe] Description of search_parcels changed (21% word delta). [safe] Description of search_people changed (18% word delta). [safe] Description of search_private_companies changed (23% word delta). [safe] Description of search_property_events changed (5% word delta). [safe] Description of search_vc_firms changed (13% word delta). [risky] Description of verify changed (29% word delta). [safe] Description of what_can_dfx_answer changed (24% word delta). [safe] Description of who_should_care changed (19% word delta).","changes":[{"kind":"tool_removed","tool":"dfx_payment_status","detail":"Tool `dfx_payment_status` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"fund_dfx_account","detail":"Tool `fund_dfx_account` was removed.","severity":"breaking"},{"kind":"tool_removed","tool":"open_dfx_account","detail":"Tool `open_dfx_account` was removed.","severity":"breaking"},{"kind":"description_changed","tool":"changes_since","after":"A feed of what is NEW since a cursor, ordered by when DFX learned it rather than by when it happened. The first call, made without a cursor, returns ZERO events and a starting position by design; a later call with that cursor returns what DFX learned in between. It answers what is new, not what exists. Filter by event type, state, or a specific property or parcel id. Deterministic and indexed, so frequent polling is cheap. Free.\nHISTORICAL FAMILIES DO FLOW THROUGH HERE. This feed is ordered by when DFX LEARNED a fact, not when the fact happened, so a foreclosure that occurred months ago and was ingested today arrives in today's delta. A distress or sales feed built on this works.","before":"Poll for what is NEW to you, ordered by when DFX learned it rather than by when it happened. TWO CALLS ARE REQUIRED BEFORE YOU SEE ANYTHING: the first, with no cursor, deliberately returns ZERO events and a starting position; the second, with that cursor, returns what DFX learned in between. If you want rows now rather than a subscription, call search_property_events instead. Filter by event type, state, or a specific property or parcel id. Deterministic and indexed, so it is cheap to call often. Free.\nHISTORICAL FAMILIES DO FLOW THROUGH HERE. `within_days` on search_property_events cannot reach the past, but this tool is ordered by when DFX LEARNED a fact, not when the fact happened, so a foreclosure that occurred months ago and was ingested today arrives in today's delta. A distress or sales feed built on this works.","detail":"Description of `changes_since` changed (37% word delta).","severity":"risky","descriptionDelta":0.3653846153846154},{"kind":"description_changed","tool":"debt_maturity_schedule","after":"Free, keyless and unauthenticated.\nReturns the LOAN rather than the event: for one US state and one forward window, up to 200 loans with maturity date, original and current principal, interest rate, lender name, instrument type, origination date and the secured property's address, deduplicated to one row per loan and ordered by maturity.\nEvery maturity_basis is 'confirmed': 19,881 of 19,881 loans carry a date filed with the SEC by a servicer or recorded by HUD, and none is estimated or inferred from a term length.\nEvery response states how many loans DFX holds for the filter and whether the delivery is complete, so an answer capped at 200 rows is never presented as the whole population. Each row says whether a maturity event was published for the loan; a CMBS loan without one was filed as defeased and will not become a refinancing.","before":"PAID: $1.00 USD per delivered schedule. This is the ONLY priced tool on this server. The other 38 are free, keyless and permanently so.\nReturns the LOAN rather than the event: for one US state and one forward window, up to 200 loans with maturity date, original and current principal, interest rate, lender name, instrument type, origination date and the secured property's address, deduplicated to one row per loan and ordered by maturity.\nEvery maturity_basis is 'confirmed': 19,881 of 19,881 loans carry a date filed with the SEC by a servicer or recorded by HUD, and none is estimated or inferred from a term length.\nHOW TO GET A PRICE, FREE: call this tool with no `authorize` argument and no credential. You are not charged and not refused. You receive a real quote for your exact arguments, the price, every field that would arrive, the known limits, and the number of rows your dollar would actually buy, so a filter that would deliver one row is visible before you spend anything.\nHOW TO ACTUALLY BE CHARGED: resend the identical call with `authorize` and an `X-DFX-Account` header holding a funded account key. THIS IS THE ONLY THING ON THIS SERVER THAT NEEDS A CREDENTIAL, and it is the reason the handshake's 'no signup' is about the free tier and not about this tool. To get one, call open_dfx_account on this same server; no human step is needed to open it, and a balance must be funded before it can spend. Everything else here, including the quote itself, needs no account at all.\nFREE ALTERNATIVE, AND IT IS A REAL ONE: search_property_events with event_type=LOAN_MATURITY_SCHEDULED returns up to 50 maturity EVENTS per page for the same state, dated and sourced, each carrying the loan's balance, rate and instrument, but no lender, no origination and no term. It is also a smaller population: an event has to be resolved to a single building, so a loan secured by several is in the paid tape and not in the free index. Use the free tool for timing and the numbers, this one for the whole state in one call with the lender named.","detail":"Description of `debt_maturity_schedule` changed (63% word delta).","severity":"risky","descriptionDelta":0.6331658291457287},{"kind":"input_property_removed","path":"inputSchema.properties.authorize","tool":"debt_maturity_schedule","before":{"type":"object","required":["quote_id","max_price_usd"],"properties":{"quote_id":{"type":"string","description":"from the PAYMENT_REQUIRED reply"},"max_price_usd":{"type":"number","description":"YOUR ceiling, checked before ours. If the price exceeds it you are refused rather than charged."}},"description":"Omit to be quoted. Supply to be charged and served in one response."},"detail":"Field `authorize` was removed from `debt_maturity_schedule` input; consumers still sending it may be rejected or silently ignored.","severity":"breaking"},{"kind":"description_changed","tool":"dfx_coverage","after":"Measured coverage, served sources, object types and the known gaps stated plainly, including where geography is a single state and where nothing carries a calibrated probability. It separates an empty result from an absent market.\nWith NO arguments: the full grid, every event family, every state, measured. With `state` and/or `event_type`: a direct verdict on that one slice (COVERED, NOT_COVERED or UNKNOWN) with the basis it was decided on, which is one small answer instead of a grid to parse. Free, and it queries no data: the verdict comes from a coverage registry, so a NOT_COVERED is measured rather than inferred from an empty search.","before":"Measured coverage, served sources, object types and the known gaps stated plainly, including where geography is a single state and where nothing carries a calibrated probability. Call this before concluding that an empty result means an absent market.\nCall it with NO arguments for the full grid: every event family, every state, measured. Call it with `state` and/or `event_type` for a direct verdict on that one slice (COVERED, NOT_COVERED or UNKNOWN) with the basis it was decided on, which is one small answer instead of a grid to parse. Free, and it queries no data: the verdict comes from a coverage registry, so a NOT_COVERED is measured rather than inferred from an empty search.","detail":"Description of `dfx_coverage` changed (9% word delta).","severity":"safe","descriptionDelta":0.09210526315789469},{"kind":"description_changed","tool":"get_entity","after":"For any DFX id: the full card, published relationships with sources and dates, recent events, evidence rows (the observation each fact traces to), cross-graph same_as links by shared identifier, same-name candidates on other graphs (labelled as candidates), and pointers to deeper views. One answer to 'show me everything on X'.","before":"For any DFX id: the full card, published relationships with sources and dates, recent events, evidence rows (the observation each fact traces to), cross-graph same_as links by shared identifier, same-name candidates on other graphs (labelled as candidates), and the tools that go deeper. The single call that answers 'show me everything on X'.","detail":"Description of `get_entity` changed (19% word delta).","severity":"safe","descriptionDelta":0.1923076923076923},{"kind":"description_changed","tool":"get_family_office","after":"The full card for one family office: profile, AUM / RAUM / 13F value kept apart with their as-of dates, behaviour, the people who run it with roles, its observed investments, relationships, recent events, evidence rows and cross-graph links (same_as by shared CRD/CIK/EIN). Contact points are withheld over MCP. Accepts dfx:fo: ids.","before":"The full card for one family office: profile, AUM / RAUM / 13F value kept apart with their as-of dates, behaviour, the people who run it with roles, its observed investments, relationships, recent events, evidence rows and cross-graph links (same_as by shared CRD/CIK/EIN). Contact points are withheld over MCP. Same answer as get_entity for a dfx:fo: id.","detail":"Description of `get_family_office` changed (12% word delta).","severity":"safe","descriptionDelta":0.12068965517241381},{"kind":"description_changed","tool":"get_independent_sponsor","after":"The full card for any entity on the sponsor graph: a sponsor (with its computed company matches and announced transactions), a capital provider (with fund size, average investment, SBIC status, strategy, whether making new investments) or a private company (with its transition signals and sponsor matches). Plus relationships, events, evidence and cross-graph links. Accepts dfx:isi: ids.","before":"The full card for any entity on the sponsor graph: a sponsor (with its computed company matches and announced transactions), a capital provider (with fund size, average investment, SBIC status, strategy, whether making new investments) or a private company (with its transition signals and sponsor matches). Plus relationships, events, evidence and cross-graph links. Same answer as get_entity for a dfx:isi: id.","detail":"Description of `get_independent_sponsor` changed (14% word delta).","severity":"safe","descriptionDelta":0.14},{"kind":"description_changed","tool":"get_occupancy","after":"Two directions from one call. A PROPERTY dfx_id returns the tenants observed at that building: tenant name and dfx_id, occupancy class, leased area, share of the property, and the lease expiration date where the source discloses one. A COMPANY dfx_id returns where that company is observed to operate. `company` with `address` (plus city and state) checks ONE claim: does DFX hold this company at this building. Every row carries its evidence tier and its freshness. Free.\nnot_observed IS NOT VACANT. The published tenancy sources name only the largest tenant of a building, so most real occupiers are outside the disclosure entirely and an absent row is an absent disclosure, never a statement about the space. Accepts the canonical property and company dfx_ids carried by address and name resolution results and by event rows.","before":"Two directions from one call. Pass a PROPERTY dfx_id and get the tenants observed at that building: tenant name and dfx_id, occupancy class, leased area, share of the property, and the lease expiration date where the source discloses one. Pass a COMPANY dfx_id and get where that company is observed to operate. Pass `company` with `address` (plus city and state) to have ONE claim checked: does DFX hold this company at this building. Every row carries its evidence tier and its freshness. Free.\nnot_observed IS NOT VACANT. The published tenancy sources name only the largest tenant of a building, so most real occupiers are outside the disclosure entirely and an absent row is an absent disclosure, never a statement about the space. Ids come from resolve_address, resolve_organization, or the `dfx_id` on any search_property_events row.","detail":"Description of `get_occupancy` changed (24% word delta).","severity":"safe","descriptionDelta":0.23958333333333337},{"kind":"description_changed","tool":"get_property_record","after":"Given a DFX id, return current state, dated events, ownership and management relationships, debt with maturity dates and maturity basis, recorded sales with consideration plus registry book and page, and the provenance of each. Sales carry BOTH the instrument total and this parcel's allocated share, because a deed repeats its full price on every parcel it covers. Free.\nTHIS IS ALSO THE PARCEL LOOKUP. The id can name a property or a parcel, and both come back in full, including the `dfx_id` carried on every address resolution object and every parcel search row.","before":"Given a DFX id, return current state, dated events, ownership and management relationships, debt with maturity dates and maturity basis, recorded sales with consideration plus registry book and page, and the provenance of each. Sales carry BOTH the instrument total and this parcel's allocated share, because a deed repeats its full price on every parcel it covers. Free.\nTHIS IS ALSO THE PARCEL LOOKUP. The id can name a property or a parcel, and both come back in full: take one from resolve_address, or take the `dfx_id` off any row search_parcels returned.","detail":"Description of `get_property_record` changed (19% word delta).","severity":"safe","descriptionDelta":0.18666666666666665},{"kind":"description_changed","tool":"get_vc_firm","after":"The full card for any entity on the venture graph: a firm (with recent investments, co-investors and funds), a person (with attributed investments and board seats), a fund (with all seven fund amounts kept apart and its lifecycle state) or a portfolio company (with its investors). Plus relationships, events, evidence and cross-graph links. Accepts dfx:vc: ids.","before":"The full card for any entity on the venture graph: a firm (with recent investments, co-investors and funds), a person (with attributed investments and board seats), a fund (with all seven fund amounts kept apart and its lifecycle state) or a portfolio company (with its investors). Plus relationships, events, evidence and cross-graph links. Same answer as get_entity for a dfx:vc: id.","detail":"Description of `get_vc_firm` changed (14% word delta).","severity":"safe","descriptionDelta":0.1428571428571429},{"kind":"description_changed","tool":"resolve_address","after":"Turn a street address into canonical DFX object ids, with the match basis and any ambiguity stated. Returns typed objects: a 'property' (national federal programme multifamily) and/or a 'parcel' (Massachusetts assessor and registry layer). These are separate populations that barely overlap, so an address may return one, the other, or both. Free. The ids returned are the canonical property and parcel ids used across this server.","before":"Turn a street address into canonical DFX object ids, with the match basis and any ambiguity stated. Returns typed objects: a 'property' (national federal programme multifamily) and/or a 'parcel' (Massachusetts assessor and registry layer). These are separate populations that barely overlap, so an address may return one, the other, or both. Free. Start here, then call get_property_record with an id.","detail":"Description of `resolve_address` changed (19% word delta).","severity":"safe","descriptionDelta":0.19298245614035092},{"kind":"description_changed","tool":"search_entities","after":"One search across family offices, independent sponsors and their capital providers, private companies, venture firms and real estate organisations: by name, or by filters (entity_type, domain, state, sector, ...). Compact cards with stable dfx ids and a per-domain coverage note. Breadth across every domain in one query, with fewer per-domain filters than the domain searches.","before":"One search across family offices, independent sponsors and their capital providers, private companies, venture firms and real estate organisations: by name, or by filters (entity_type, domain, state, sector, ...). Compact cards with stable dfx ids and a per-domain coverage note. Start here when you do not know which domain holds the answer; use the domain search tools when you do.","detail":"Description of `search_entities` changed (34% word delta).","severity":"risky","descriptionDelta":0.3392857142857143},{"kind":"description_changed","tool":"search_events","after":"Dated events across family offices, sponsors, venture and real estate: investments announced, vehicles formed, Form D and ADV filings, people joining and leaving, funds raised, acquisitions, plan final filings, record departures, loan maturities. Filter by domain, subject dfx_id, event_type, state, significance and window. Routine 13F position and fund-reporting noise is excluded unless asked for. Ordered and windowed by when events occurred.","before":"Dated events across family offices, sponsors, venture and real estate: investments announced, vehicles formed, Form D and ADV filings, people joining and leaving, funds raised, acquisitions, plan final filings, record departures, loan maturities. Filter by domain, subject dfx_id, event_type, state, significance and window. Routine 13F position and fund-reporting noise is excluded unless asked for. For 'what changed since T' use changes_since.","detail":"Description of `search_events` changed (17% word delta).","severity":"safe","descriptionDelta":0.16666666666666663},{"kind":"description_changed","tool":"search_family_offices","after":"Family offices as compact cards: class (single, multi, embedded...) with confidence, whether they invest directly, sectors and asset classes on record, check size where stated, direct investment count, latest deployment, and counts of people, sponsor and real estate relationships. Filter by state, sector, direct investing, recent activity or AUM. Returns dfx:fo: ids. People and individual investments are not on these cards.","before":"Family offices as compact cards: class (single, multi, embedded...) with confidence, whether they invest directly, sectors and asset classes on record, check size where stated, direct investment count, latest deployment, and counts of people, sponsor and real estate relationships. Filter by state, sector, direct investing, recent activity or AUM. Returns dfx:fo: ids for get_family_office / get_entity. Not for people (search_people) or investments (search_family_office_investments).","detail":"Description of `search_family_offices` changed (13% word delta).","severity":"safe","descriptionDelta":0.1333333333333333},{"kind":"description_changed","tool":"search_independent_sponsors","after":"Independent sponsors (deal-by-deal acquirers of lower middle market companies) as compact cards: classification with confidence, mandate summary, principals, vehicle count and latest vehicle, company match count. With `sector`, the answer is OBSERVED behaviour: sponsors ranked by the companies they matched in that vertical with sector evidence (vehicles filed there) first, then size/activity-only matches, each labelled. Returns dfx:isi: ids. Capital providers and target companies are not in these results.","before":"Independent sponsors (deal-by-deal acquirers of lower middle market companies) as compact cards: classification with confidence, mandate summary, principals, vehicle count and latest vehicle, company match count. With `sector`, the answer is OBSERVED behaviour: sponsors ranked by the companies they matched in that vertical with sector evidence (vehicles filed there) first, then size/activity-only matches, each labelled. Returns dfx:isi: ids. Not for capital providers (search_sponsor_capital_providers) or targets (search_private_companies).","detail":"Description of `search_independent_sponsors` changed (14% word delta).","severity":"safe","descriptionDelta":0.1384615384615384},{"kind":"description_changed","tool":"search_parcels","after":"Search the assessor parcel layer with filters instead of one exact address. Filter by state, municipality, assessor land use code, owner-occupancy, tax-exempt status, year built and assessed value range; results carry assessed value, gross building area, assessed value per square foot, the annual tax and the year built. This is the way to ask a QUESTION of the parcel layer without an address in hand. Every answer states the true match count alongside the sample, and a search that matches nothing names the filter that emptied it rather than returning a bare empty list. At least one filter is required. Free.\nEVERY ROW CARRIES A `dfx_id` AND IT IS A HANDLE, NOT A LABEL: the canonical parcel id this server uses for that parcel's events, ownership, debt and recorded sales.","before":"Search the assessor parcel layer with filters instead of one exact address. Filter by state, municipality, assessor land use code, owner-occupancy, tax-exempt status, year built and assessed value range; results carry assessed value, gross building area, assessed value per square foot, the annual tax and the year built. This is the only way to ask a QUESTION of the parcel layer: resolve_address needs an address you already have. Every answer states the true match count alongside the sample, and a search that matches nothing names the filter that emptied it rather than returning a bare empty list. At least one filter is required. Free.\nEVERY ROW CARRIES A `dfx_id` AND IT IS A HANDLE, NOT A LABEL. Pass it to get_property_record for that parcel's events, ownership, debt and recorded sales. That is the parcel-by-id lookup, and this is where the ids come from when you did not start with an address.","detail":"Description of `search_parcels` changed (21% word delta).","severity":"safe","descriptionDelta":0.20560747663551404},{"kind":"description_changed","tool":"search_people","after":"Investment professionals, principals and family office staff as names with titles, roles, seniority, investment responsibility, organisation and tenure, from public filings and firm pages. By name, or by organization_dfx_id, or by role. cross_graph_only=true answers 'which venture people are connected to family offices' in one call. At least one of query, organization_dfx_id, role, investment_responsibility or cross_graph_only is required; a call with none of them is refused with INVALID_ARGUMENT. Contact points are withheld over MCP; the site publishes them per office.","before":"Investment professionals, principals and family office staff as names with titles, roles, seniority, investment responsibility, organisation and tenure, from public filings and firm pages. By name, or by organization_dfx_id, or by role. cross_graph_only=true answers 'which venture people are connected to family offices' in one call. Contact points are withheld over MCP; the site publishes them per office.","detail":"Description of `search_people` changed (18% word delta).","severity":"safe","descriptionDelta":0.18333333333333335},{"kind":"description_changed","tool":"search_private_companies","after":"US private companies whose filings (Form 5500 plan history, final filings, ownership changes) show a transition: vertical, plan participants as a size proxy, EBITDA band where derivable, and scores 0 to 100 for opportunity, dealability, transition readiness and urgency, each backed by observations. Filter by vertical, state, NAICS prefix, size and minimum opportunity. Returns dfx:isi: ids.","before":"US private companies whose filings (Form 5500 plan history, final filings, ownership changes) show a transition: vertical, plan participants as a size proxy, EBITDA band where derivable, and scores 0 to 100 for opportunity, dealability, transition readiness and urgency, each backed by observations. Filter by vertical, state, NAICS prefix, size and minimum opportunity. Then find_capital_for_opportunity(dfx_id) for who should buy or fund it.","detail":"Description of `search_private_companies` changed (23% word delta).","severity":"safe","descriptionDelta":0.2321428571428571},{"kind":"description_changed","tool":"search_property_events","after":"Dated events over US properties and parcels, with provenance and a human-readable headline. Covers LIHTC compliance period endings (the Year 15 recapitalisation trigger, 11,956 of them), HUD subsidy contract expiries (4,721), scheduled loan maturities (3,422) now national rather than Massachusetts, CMBS distress and workout reporting (167 delinquency flags across 26 states, 128 foreclosures across 22), issued building permits and demolition filings (Boston only), and recorded sales (43,680, 2 states). 9,401 events fall inside the next 548 days, measured 2026-09-13. Filter by event type, state and days ahead. An unrecognised event type is REFUSED with the served vocabulary, never answered with an empty list. Free. ORDER: results are sorted by `occurred_at`. A family whose events lie AHEAD is returned soonest first, so the first row is the next thing to happen. A family whose events have already happened is returned NEWEST first, so the first row is the most recent thing that did. The tie-break is stable, so paging never reorders what you have already seen. FORWARD, soonest first: COMPLIANCE_PERIOD_ENDING, LEASE_EXPIRING, LOAN_MATURITY_SCHEDULED, SUBSIDY_CONTRACT_EXPIRING. HISTORICAL, newest first: BANKRUPTCY_EVENT, CERTIFICATE_OF_OCCUPANCY, DEMOLITION_FILED, DISTRESS_FLAG_RAISED, FORECLOSURE_EVENT, LOAN_MODIFIED, PERMIT_ISSUED, PORTFOLIO_CONTRACTED, PORTFOLIO_EXPANDED, PROPERTY_SOLD, USE_CONVERSION_PERMITTED. Measured 2026-09-13. Passing `within_days` asks about a future whatever the family, so it sorts soonest first. PAGING: a full page carries `next_cursor`. Supplied as `cursor` with every other argument unchanged, it continues the traversal; `next_cursor` is null on the last page, and that is the only signal the traversal has ended. The cursor carries the sort it was issued under, so a cursor replayed against a different `event_type` is REFUSED rather than quietly paging you back through rows you have seen. The counts above are therefore all reachable.","before":"Dated events over US properties and parcels, with provenance and a headline you can show a person. Covers LIHTC compliance period endings (the Year 15 recapitalisation trigger, 11,956 of them), HUD subsidy contract expiries (4,721), scheduled loan maturities (3,422) now national rather than Massachusetts, CMBS distress and workout reporting (167 delinquency flags across 26 states, 128 foreclosures across 22), issued building permits and demolition filings (Boston only), and recorded sales (43,680, 2 states). 9,401 events fall inside the next 548 days, measured 2026-09-13. Filter by event type, state and days ahead. An unrecognised event type is REFUSED with the served vocabulary, never answered with an empty list. Free. ORDER: results are sorted by `occurred_at`. A family whose events lie AHEAD is returned soonest first, so the first row is the next thing to happen. A family whose events have already happened is returned NEWEST first, so the first row is the most recent thing that did. The tie-break is stable, so paging never reorders what you have already seen. FORWARD, soonest first: COMPLIANCE_PERIOD_ENDING, LEASE_EXPIRING, LOAN_MATURITY_SCHEDULED, SUBSIDY_CONTRACT_EXPIRING. HISTORICAL, newest first: BANKRUPTCY_EVENT, CERTIFICATE_OF_OCCUPANCY, DEMOLITION_FILED, DISTRESS_FLAG_RAISED, FORECLOSURE_EVENT, LOAN_MODIFIED, PERMIT_ISSUED, PORTFOLIO_CONTRACTED, PORTFOLIO_EXPANDED, PROPERTY_SOLD, USE_CONVERSION_PERMITTED. Measured 2026-09-13. Passing `within_days` asks about a future whatever the family, so it sorts soonest first. PAGING: a full page carries `next_cursor`. Pass it back as `cursor` with every other argument unchanged to continue; `next_cursor` is null on the last page, and that is the only signal the traversal has ended. The cursor carries the sort it was issued under, so a cursor replayed against a different `event_type` is REFUSED rather than quietly paging you back through rows you have seen. The counts above are therefore all reachable.","detail":"Description of `search_property_events` changed (5% word delta).","severity":"safe","descriptionDelta":0.04663212435233166},{"kind":"description_changed","tool":"search_vc_firms","after":"Venture firms as compact cards: stated sectors, stages, geography and check size beside OBSERVED behaviour (investments in the last 6 and 12 months, lead count, behaviour summary and divergence from the stated thesis), funds with the latest vintage and Form D, people and partner counts. Filter by sector, stage, state, active or raising, emerging manager. Returns dfx:vc: ids. Funds, people and individual deals are not on these cards.","before":"Venture firms as compact cards: stated sectors, stages, geography and check size beside OBSERVED behaviour (investments in the last 6 and 12 months, lead count, behaviour summary and divergence from the stated thesis), funds with the latest vintage and Form D, people and partner counts. Filter by sector, stage, state, active or raising, emerging manager. Returns dfx:vc: ids. Not for funds (search_vc_funds), people (search_people) or deals (search_vc_investments).","detail":"Description of `search_vc_firms` changed (13% word delta).","severity":"safe","descriptionDelta":0.1311475409836066},{"kind":"description_changed","tool":"verify","after":"SUPPORTED, PARTIALLY_SUPPORTED, CONTRADICTED or UNKNOWN for a claim, with the observations. Give a sentence ('Family Office X invested in Company Y in 2025', 'Z is a family office') or a structured subject / predicate / object / year. DFX contradicts only what its own record contradicts; absence of evidence is UNKNOWN, never CONTRADICTED. Its predicates cover investment, acquisition, co-investment, employment and identity claims; property facts are outside them.","before":"SUPPORTED, PARTIALLY_SUPPORTED, CONTRADICTED or UNKNOWN for a claim, with the observations. Give a sentence ('Family Office X invested in Company Y in 2025', 'Z is a family office') or a structured subject / predicate / object / year. DFX contradicts only what its own record contradicts; absence of evidence is UNKNOWN, never CONTRADICTED. For a property fact use get_property_record.","detail":"Description of `verify` changed (29% word delta).","severity":"risky","descriptionDelta":0.2857142857142857},{"kind":"description_changed","tool":"what_can_dfx_answer","after":"Takes an objective in natural language and returns whether DFX can help, the tool name and arguments that answer it, and a free sample of the result. Says no clearly when the answer is no. Accepts objectives that do not yet map to a specific query.\nREAD ONLY, and the annotation means it: nothing is created, nothing you or anyone else can read back is changed. The question itself is kept in DFX's own interaction ledger, as every call on this server is, and unmet asks are what decide what DFX builds next.","before":"Describe an objective in natural language and get back whether DFX can help, which tool to call, the arguments to call it with, and a free sample of the result. Says no clearly when the answer is no. Call this first if you do not know what to ask for.\nREAD ONLY, and the annotation means it: nothing is created, nothing you or anyone else can read back is changed. The question itself is kept in DFX's own interaction ledger, as every call on this server is, and unmet asks are what decide what DFX builds next.","detail":"Description of `what_can_dfx_answer` changed (24% word delta).","severity":"safe","descriptionDelta":0.240506329113924},{"kind":"description_changed","tool":"who_should_care","after":"Given an entity or an event id: who is likely to care and why. A company transition names sponsors, capital providers and family offices with the observed reason; a family office names its co-investors and fitting opportunities; a venture firm names its co-investors; a property names its owner, lender and the next query for exposed lenders and real estate offices. Needs an entity or event id; a description of a situation without an id is not accepted.","before":"Given an entity or an event id: who is likely to care and why. A company transition names sponsors, capital providers and family offices with the observed reason; a family office names its co-investors and fitting opportunities; a venture firm names its co-investors; a property names its owner, lender and the next query for exposed lenders and real estate offices. Needs an id: if you only have a description of the situation, call find_capital_for_opportunity with it instead.","detail":"Description of `who_should_care` changed (19% word delta).","severity":"safe","descriptionDelta":0.18644067796610164}],"published_at":"2026-09-13T17:17:13.941Z"},{"slug":"ZV-2026-0792","server_name":"exchange-production-9123.up.railway.app","severity":"breaking","title":"exchange-production-9123.up.railway.app: Enum value COMPANY_CONTRACTED removed from event_type on changes_since.","summary":"[breaking] Enum value COMPANY_CONTRACTED removed from event_type on changes_since. [breaking] Enum value LEASE_TERM_REVISED removed from event_type on changes_since. [breaking] Enum value COMPANY_CONTRACTED removed from event_type on dfx_coverage. [breaking] Enum value LEASE_TERM_REVISED removed from event_type on dfx_coverage. [safe] Description of search_property_events changed (2% word delta). [breaking] Enum value COMPANY_CONTRACTED removed from event_type on search_property_events. [breaking] Enum value LEASE_TERM_REVISED removed from event_type on search_property_events.","changes":[{"kind":"enum_value_removed","path":"inputSchema.properties.event_type","tool":"changes_since","before":"COMPANY_CONTRACTED","detail":"Enum value `COMPANY_CONTRACTED` removed from `event_type` on `changes_since`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.event_type","tool":"changes_since","before":"LEASE_TERM_REVISED","detail":"Enum value `LEASE_TERM_REVISED` removed from `event_type` on `changes_since`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.event_type","tool":"dfx_coverage","before":"COMPANY_CONTRACTED","detail":"Enum value `COMPANY_CONTRACTED` removed from `event_type` on `dfx_coverage`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.event_type","tool":"dfx_coverage","before":"LEASE_TERM_REVISED","detail":"Enum value `LEASE_TERM_REVISED` removed from `event_type` on `dfx_coverage`.","severity":"breaking"},{"kind":"description_changed","tool":"search_property_events","after":"Dated events over US properties and parcels, with provenance and a headline you can show a person. Covers LIHTC compliance period endings (the Year 15 recapitalisation trigger, 13,549 of them), HUD subsidy contract expiries (4,721), scheduled loan maturities (592) now national rather than Massachusetts, CMBS distress and workout reporting (188 delinquency flags across 26 states, 142 foreclosures across 22), issued building permits and demolition filings (Boston only), and recorded sales (43,857, 2 states). 6,625 events fall inside the next 548 days, measured 2026-09-07. Filter by event type, state and days ahead. An unrecognised event type is REFUSED with the served vocabulary, never answered with an empty list. Free.","before":"Dated events over US properties and parcels, with provenance and a headline you can show a person. Covers LIHTC compliance period endings (the Year 15 recapitalisation trigger, 13,549 of them), HUD subsidy contract expiries (4,721), scheduled loan maturities (592) now national rather than Massachusetts, CMBS distress and workout reporting (188 delinquency flags across 26 states, 142 foreclosures across 22), issued building permits and demolition filings (Boston only), and recorded sales (43,857, 2 states). 6,720 events fall inside the next 548 days, measured 2026-09-07. Filter by event type, state and days ahead. An unrecognised event type is REFUSED with the served vocabulary, never answered with an empty list. Free.","detail":"Description of `search_property_events` changed (2% word delta).","severity":"safe","descriptionDelta":0.020408163265306145},{"kind":"enum_value_removed","path":"inputSchema.properties.event_type","tool":"search_property_events","before":"COMPANY_CONTRACTED","detail":"Enum value `COMPANY_CONTRACTED` removed from `event_type` on `search_property_events`.","severity":"breaking"},{"kind":"enum_value_removed","path":"inputSchema.properties.event_type","tool":"search_property_events","before":"LEASE_TERM_REVISED","detail":"Enum value `LEASE_TERM_REVISED` removed from `event_type` on `search_property_events`.","severity":"breaking"}],"published_at":"2026-09-07T09:50:12.236Z"},{"slug":"ZV-2026-0598","server_name":"exchange-production-9123.up.railway.app","severity":"breaking","title":"exchange-production-9123.up.railway.app: event_type on changes_since narrowed to a closed enum (BANKRUPTCY_EVENT, CERTIFICATE_OF_OCCUPANCY, COMPANY_CONTRACTED, COMPLIANCE_PERIOD_ENDING, DEMOLITION_FIL","summary":"[safe] Tool dfx_payment_status was added. [safe] Tool fund_dfx_account was added. [safe] Tool open_dfx_account was added. [risky] Description of changes_since changed (59% word delta). [breaking] event_type on changes_since narrowed to a closed enum (BANKRUPTCY_EVENT, CERTIFICATE_OF_OCCUPANCY, COMPANY_CONTRACTED, COMPLIANCE_PERIOD_ENDING, DEMOLITION_FILED, DISTRESS_FLAG_RAISED, FORECLOSURE_EVENT, LEASE_EXPIRING, LEASE_TERM_REVISED, LOAN_MATURITY_SCHEDULED, LOAN_MODIFIED, PERMIT_ISSUED, PERMIT_STATUS_CHANGED, PROPERTY_SOLD, SUBSIDY_CONTRACT_EXPIRING, USE_CONVERSION_PERMITTED); previously valid values may now be rejected. [risky] Description of debt_maturity_schedule changed (48% word delta). [risky] Description of dfx_coverage changed (55% word delta). [risky] Optional field event_type was added to dfx_coverage; may shift model behaviour. [risky] Optional field state was added to dfx_coverage; may shift model behaviour.","changes":[{"kind":"tool_added","tool":"dfx_payment_status","detail":"Tool `dfx_payment_status` was added.","severity":"safe"},{"kind":"tool_added","tool":"fund_dfx_account","detail":"Tool `fund_dfx_account` was added.","severity":"safe"},{"kind":"tool_added","tool":"open_dfx_account","detail":"Tool `open_dfx_account` was added.","severity":"safe"},{"kind":"description_changed","tool":"changes_since","after":"Poll for what is NEW to you, ordered by when DFX learned it rather than by when it happened. TWO CALLS ARE REQUIRED BEFORE YOU SEE ANYTHING: the first, with no cursor, deliberately returns ZERO events and a starting position; the second, with that cursor, returns what DFX learned in between. If you want rows now rather than a subscription, call search_property_events instead. Filter by event type, state, or a specific property or parcel id. Deterministic and indexed, so it is cheap to call often. Free.\nHISTORICAL FAMILIES DO FLOW THROUGH HERE. `within_days` on search_property_events cannot reach the past, but this tool is ordered by when DFX LEARNED a fact, not when the fact happened, so a foreclosure that occurred months ago and was ingested today arrives in today's delta. A distress or sales feed built on this works.","before":"Poll for what is NEW to you, ordered by when DFX learned it rather than by when it happened. Call with no cursor to get a starting position, then call again with the cursor you were given to receive everything added in between. Filter by event type, state, or a specific property or parcel id. Deterministic and indexed, so it is cheap to call often. Free.","detail":"Description of `changes_since` changed (59% word delta).","severity":"risky","descriptionDelta":0.5882352941176471},{"kind":"enum_narrowed","path":"inputSchema.properties.event_type","tool":"changes_since","after":"enum[BANKRUPTCY_EVENT,CERTIFICATE_OF_OCCUPANCY,COMPANY_CONTRACTED,COMPLIANCE_PERIOD_ENDING,DEMOLITION_FILED,DISTRESS_FLAG_RAISED,FORECLOSURE_EVENT,LEASE_EXPIRING,LEASE_TERM_REVISED,LOAN_MATURITY_SCHEDULED,LOAN_MODIFIED,PERMIT_ISSUED,PERMIT_STATUS_CHANGED,PROPERTY_SOLD,SUBSIDY_CONTRACT_EXPIRING,USE_CONVERSION_PERMITTED]","before":"open","detail":"`event_type` on `changes_since` narrowed to a closed enum (BANKRUPTCY_EVENT, CERTIFICATE_OF_OCCUPANCY, COMPANY_CONTRACTED, COMPLIANCE_PERIOD_ENDING, DEMOLITION_FILED, DISTRESS_FLAG_RAISED, FORECLOSURE_EVENT, LEASE_EXPIRING, LEASE_TERM_REVISED, LOAN_MATURITY_SCHEDULED, LOAN_MODIFIED, PERMIT_ISSUED, PERMIT_STATUS_CHANGED, PROPERTY_SOLD, SUBSIDY_CONTRACT_EXPIRING, USE_CONVERSION_PERMITTED); previously valid values may now be rejected.","severity":"breaking"},{"kind":"description_changed","tool":"debt_maturity_schedule","after":"PAID: $1.00 USD per delivered schedule. This is the ONLY priced tool on this server. The other eight are free, keyless and permanently so.\nReturns the LOAN rather than the event: for one US state and one forward window, up to 200 loans with maturity date, original principal, lender name, instrument type, origination date and the secured property's address, deduplicated to one row per loan and ordered by maturity.\nEvery maturity_basis is 'confirmed': 19,881 of 19,881 loans carry a date filed with the SEC by a servicer or recorded by HUD, and none is estimated or inferred from a term length.\nHOW TO GET A PRICE, FREE: call this tool with no `authorize` argument and no credential. You are not charged and not refused. You receive a real quote for your exact arguments, the price, every field that would arrive, the known limits, and the number of rows your dollar would actually buy, so a filter that would deliver one row is visible before you spend anything.\nHOW TO ACTUALLY BE CHARGED: resend the identical call with `authorize` and an `X-DFX-Account` header holding a funded account key. THIS IS THE ONLY THING ON THIS SERVER THAT NEEDS A CREDENTIAL, and it is the reason the handshake's 'no signup' is about the free tier and not about this tool. To get one, call open_dfx_account on this same server; no human step is needed to open it, and a balance must be funded before it can spend. Everything else here, including the quote itself, needs no account at all.\nFREE ALTERNATIVE, AND IT IS A REAL ONE: search_property_events with event_type=LOAN_MATURITY_SCHEDULED returns up to 50 maturity EVENTS for the same state, dated and sourced, with no principal, no lender and no instrument. It is also a smaller population: an event has to be resolved to a single building, so a loan secured by several is in the paid tape and not in the free index. Use the free tool for timing, this one for a refinancing conversation.","before":"PAID: $1.00 USD per delivered schedule. Every other tool on this server is free and stays free.\nReturns the LOAN rather than the event: for one US state and one forward window, up to 200 loans with maturity date, original principal, lender name, instrument type, origination date and the secured property's address, deduplicated to one row per loan and ordered by maturity. Every maturity_basis is 'confirmed': 19,881 of 19,881 loans carry a date filed with the SEC by a servicer or recorded by HUD, and none is estimated or inferred from a term length.\nCall it WITHOUT `authorize` to receive a real quote, the exact price, what arrives, and the free alternative. Nothing is charged for a quote. Call it again with `authorize` and an X-DFX-Account header to be charged once and served in the same response.\nFREE ALTERNATIVE: search_property_events with event_type=LOAN_MATURITY_SCHEDULED returns up to 50 maturity EVENTS for the same state with no principal, no lender and no instrument.","detail":"Description of `debt_maturity_schedule` changed (48% word delta).","severity":"risky","descriptionDelta":0.4775280898876404},{"kind":"description_changed","tool":"dfx_coverage","after":"Measured coverage, served sources, object types and the known gaps stated plainly, including where geography is a single state and where nothing carries a calibrated probability. Call this before concluding that an empty result means an absent market.\nCall it with NO arguments for the full grid: every event family, every state, measured. Call it with `state` and/or `event_type` for a direct verdict on that one slice (COVERED, NOT_COVERED or UNKNOWN) with the basis it was decided on, which is one small answer instead of a grid to parse. Free, and it queries no data: the verdict comes from a coverage registry, so a NOT_COVERED is measured rather than inferred from an empty search.","before":"Measured coverage, served sources, object types and the known gaps stated plainly, including where geography is a single state and where nothing carries a calibrated probability. Call this before concluding that an empty result means an absent market.","detail":"Description of `dfx_coverage` changed (55% word delta).","severity":"risky","descriptionDelta":0.5466666666666666},{"kind":"input_property_added","path":"inputSchema.properties.event_type","tool":"dfx_coverage","after":{"enum":["BANKRUPTCY_EVENT","CERTIFICATE_OF_OCCUPANCY","COMPANY_CONTRACTED","COMPLIANCE_PERIOD_ENDING","DEMOLITION_FILED","DISTRESS_FLAG_RAISED","FORECLOSURE_EVENT","LEASE_EXPIRING","LEASE_TERM_REVISED","LOAN_MATURITY_SCHEDULED","LOAN_MODIFIED","PERMIT_ISSUED","PERMIT_STATUS_CHANGED","PROPERTY_SOLD","SUBSIDY_CONTRACT_EXPIRING","USE_CONVERSION_PERMITTED"],"type":"string","description":"Optional: narrows the answer to this family. Same vocabulary as search_property_events."},"detail":"Optional field `event_type` was added to `dfx_coverage`; may shift model behaviour.","severity":"risky"},{"kind":"input_property_added","path":"inputSchema.properties.state","tool":"dfx_coverage","after":{"type":"string","description":"Two letter state code. Optional: narrows the answer to this state."},"detail":"Optional field `state` was added to `dfx_coverage`; may shift model behaviour.","severity":"risky"}],"published_at":"2026-09-01T15:03:15.145Z"}]