Changelog
Public version history for the AutonoMath REST API (https://api.autonomath.ai/v1/*), the MCP server (stdio, FastMCP, protocol 2025-06-18), and the official SDKs (autonomath on PyPI / @autonomath/sdk on npm).
Format: Keep a Changelog 1.1.0 ·
Versioning: Semantic Versioning 2.0.0 ·
While we are at 0.x, minor bumps may still contain breaking changes — we will call them out explicitly with a BREAKING: prefix.
1.0.0 GA is targeted for 2026-09 or later.
v0.3.0V4 + Phase A absorption
Released 2026-04-25
Added
- +11 MCP tools (55 → 66): four V4 universal tools (
get_annotations, validate, get_provenance, get_provenance_for_fact) plus seven Phase A tools (list_static_resources_am, get_static_resource_am, list_example_profiles_am, get_example_profile_am, render_36_kyotei_am, get_36_kyotei_metadata_am, deep_health_am). Composition: 38 jpintel + 28 autonomath (V1 17 + V4 4 + Phase A 7).
- +7 REST endpoints under
/v1/am/*: annotations, validate, provenance (entity + fact), static resources, example profiles, the saburoku_kyotei template, and a deep-health endpoint at /v1/am/health/deep mounted on a dedicated health_router that bypasses AnonIpLimitDep.
- autonomath.db unified primary DB: physically merged with jpintel.db (migration 032). Now an 8.29 GB single primary, with 78 mirrored
jpi_* tables, 6,339 cross-DB id mappings (entity_id_map), and three cross-domain views (v_program_full, v_houjin_360, v_readiness_input).
- 8 static taxonomies and 5 example profiles shipped under
data/autonomath_static/, plus four utility modules (wareki.py, jp_money.py, jp_constants.py, templates/saburoku_kyotei.py).
- New model module
models/premium_response.py introducing PremiumResponse, ProvenanceBadge, AdoptionScore, and AuditLogEntry. response_model annotations were added to 32 endpoints.
- Ingest landed: 9,933 examiner-feedback rows resolved into 16,474 annotations; 79,876 new corporate_entity rows + 861,137 new corp.* facts (across 21 new field_names) from gbiz; 1,901 new
jpi_adoption_records; license bulk fill (NTA → pdl_v1.0 87k, gov_standard 7k, public_domain 953, e-Gov → cc_by_4.0 186, JST → proprietary 617).
- Migrations 046–051 applied: annotation tables, validation tables, jpi_pc_program_health (66 programs), three new columns (
am_source.license, am_entity_facts.source_id, jpi_feedback.entity_canonical_id), Tier=X quarantine fix, exclusion_rules unified_id keys.
- Cross-cutting hardening: global error envelope (
_error_envelope.py), strict_query middleware (closes a 87% silent-drop hole), and a charge.refunded Stripe webhook handler.
Changed
- Tool count: 55 → 66 at default gates (
AUTONOMATH_36_KYOTEI_ENABLED=false, HEALTHCARE_ENABLED=false, REAL_ESTATE_ENABLED=false).
- autonomath.db row counts:
am_entities 416,375 → 503,930; am_entity_facts 5.26M → 6.12M; am_alias 335,605; am_law_article 0 → 28,048; am_enforcement_detail 0 → 22,258; jpi_adoption_records 199,944 → 201,845.
exclusion_rules: name-keyed → unified_id keyed (dual-key for backward compatibility).
autonomath_router is now mounted in api/main.py:557; /v1/am/* is live (it was deferred at v0.2.0).
- Manifests bumped:
pyproject.toml, server.json, mcp-server.json, dxt/manifest.json, smithery.yaml all synced to 0.3.0.
Fixed
- The L-series fixes: P0-1 models shadow / P0-2 envelope wiring / P0-3 exclusion_rules dual-key / P0-4 strict_query / P0-6 get_meta dynamic / P0-7 request_id / P0-10 Tier=X.
36協定 launch gate (regulated workflow)
render_36_kyotei_am + get_36_kyotei_metadata_am are gated behind AUTONOMATH_36_KYOTEI_ENABLED (default false). 36協定 is a 労基法 §36 + 社労士法 regulated obligation; incorrect generation can expose the operator to legal liability and brand damage. The gate keeps both tools out of mcp.list_tools() until a 社労士 supervision arrangement and a customer-facing disclaimer are in place. Even when enabled, every render response carries a _disclaimer field declaring the output a draft requiring 社労士 confirmation.
v0.2.0AutonoMath canonical DB landing
Released 2026-04-25
Added
autonomath.db 7.3 GB read-only companion SQLite, EAV schema: am_entities 416,375; am_entity_facts 5.26M; am_relation 23,805 edges (15 canonical relation types); am_alias 335,605; plus 14 am_* support tables. FTS5 (trigram + unicode61) and sqlite-vec (six tiered vector indexes).
- 16 new MCP tools in the
autonomath_tools subpackage (31 → 47 total): search_tax_incentives, search_certifications, list_open_programs, enum_values_am, search_by_law, active_programs_at, related_programs, search_acceptance_stats_am, intent_of, reason_answer, get_am_tax_rule, search_gx_programs_am, search_loans_am, check_enforcement_am, search_mutual_plans_am, get_law_article_am.
- One-shot discovery tools:
smb_starter_pack, subsidy_combo_finder, deadline_calendar, dd_profile_am (collapses a 5-call due-diligence chain into one), similar_cases (case_id or free text → 10 採択事例 ranked by weighted Jaccard), regulatory_prep_pack, subsidy_roadmap_3yr, list_tax_sunset_alerts.
- Prefecture typo gate on 8 search tools: unknown prefecture strings surface an
input_warnings envelope instead of silently returning 0 rows.
- Katakana / hiragana keyword expansion with 50+ pairs (
モノづくり↔ものづくり, DX↔デジタルトランスフォーメーション, インボイス↔適格請求書, etc.).
- Japanese-localized errors: 429 (
detail + detail_en) and 422 (msg_ja + detail_summary_ja) bodies.
- New REST surfaces:
/v1/meta and /v1/openapi.json. The previous /meta and /openapi.json paths remain as 308 redirects.
- Static-site additions: branded
site/404.html, site/programs/index.html, site/_redirects, site/rss.xml, scripts/refresh_sources.py (nightly URL liveness scan with per-host rate limit, robots.txt compliance, 3-strike quarantine), and a daily 03:17 JST GitHub Actions cron.
Changed
- MCP tool docstrings for all 13 tools rewritten to the Anthropic mcp-builder pattern: one-sentence purpose, concrete scope numbers, two-to-three natural Japanese example queries. Negative phrasing ("do not use for X") removed per 2026 ArXiv 2602.14878 finding.
server.json description: replaced "6,658 programs" with the multi-source framing (11,547 programs + 2,286 採択事例 + 108 three-axis-decomposed loans + 1,185 enforcement cases + 181 exclusion / prerequisite rules) plus primary-source lineage.
- MCP server
serverInfo.version now reports 0.1.0 (autonomath-mcp) instead of the MCP SDK version.
- Program page template: replaced the generic 所管官公庁 fallback with a URL-host-derived JA agency name;
target_types enum values render as JA labels (法人, 個人事業主); MonetaryGrant.funder JSON-LD is now GovernmentOrganization with the actual issuing authority. The "最終更新" label was replaced with "出典取得" + a disclaimer (景表法 / 消費者契約法 honesty).
- Stripe checkout: removed
consent_collection.terms_of_service=required (caused live-mode 500). Replaced with custom_text.submit.message containing ToS + Privacy links.
- Stripe webhook:
invoice.payment_failed demotes the customer quota; invoice.paid re-promotes on recovery.
- Dashboard: removed legacy
tier-badge / "Free tier" markup. Copy reflects the metered ¥3/req model (税込 ¥3.30). Quota-reset copy now accurately states "月初 00:00 JST (authenticated: 00:00 UTC)".
- Trust footer (
運営: Bookyou株式会社 (T8010001213708) · [email protected]) is now present on every public page.
Fixed
- 509 polluted DB rows quarantined to tier=X: 5 aggregator URLs, 298 MAFF
g_biki dead pages, 8 fake 12345.pdf placeholder URLs, 198 bare MAFF section roots.
- 360 stale HTML program pages deleted; sitemap rebuilt to 4,817 entries.
- FTS search:
ORDER BY rank path now also respects tier priority; tier='X' rows no longer leak into results (432 pre-existing + 509 new); phrase-match used for 2+ character kanji queries (so 税額控除 no longer returns ふるさと納税); kana query expansion (のうぎょう → 農業) for the top-50 common terms; LIKE fallback (q<3) now searches aliases_json + enriched_text; duplicate program dedup via GROUP BY primary_name.
pricing.html paid CTA is now a POST to /v1/billing/checkout (was a broken GET returning 405). Contact email: [email protected] (was a dead alias [email protected]).
index.html hero tag: "AutonoMath" (was a leftover "jpintel" string).
status.html: full footer added (previously had none before </body>).
server.py module docstring: binary name autonomath-mcp (was "AutonoMath").
Deferred (resolved in v0.3.x)
- REST mount for
/v1/am/* (router file was on disk; include_router not yet wired) — landed in v0.3.0.
- Embedding-powered
reason_answer semantic search (sentence-transformers + sqlite-vec deps not yet pinned in pyproject.toml).
- Learning middleware and proactive push tools (Phase D / E of the rollout plan).
v0.1.0Initial public release
2026-05-06 (planned)
First public release of the autonomath-mcp API, MCP server, and the Python / TypeScript SDKs. All three artifacts ship at the same initial version to simplify the launch; subsequent SDK releases will cut independently.
Added (REST API at https://api.autonomath.ai, path-versioned under /v1/*)
GET /v1/programs/search — structured + free-text search with tier, prefecture, authority_level, funding_purpose, target_type, amount_min / amount_max, include_excluded, limit, offset, fields (minimal / default / full).
GET /v1/programs/{unified_id} — program detail with optional enriched A–J blocks and source_mentions lineage.
POST /v1/programs/batch — batch detail lookup (up to 100 ids).
GET /v1/exclusions/rules and POST /v1/exclusions/check — exclusion-rule catalog and evaluation against a candidate program set.
POST /v1/feedback, the Stripe-backed billing flow (/v1/billing/checkout / /portal / /keys/from-checkout / /webhook), GET /v1/meta, GET /healthz, GET /v1/ping.
Added (MCP server — stdio, FastMCP, protocol 2025-06-18)
- Six tools exposed:
search_programs, get_program, batch_get_programs, list_exclusion_rules, check_exclusions, get_meta. Tool shapes mirror the REST responses 1:1.
Added (official SDKs)
- Python
autonomath on PyPI: Client + AsyncClient with typed Pydantic models and a typed error hierarchy (JpintelError, AuthError, NotFoundError, RateLimitError, ServerError). Retries 429 / 5xx with Retry-After support. Requires Python 3.11+.
- TypeScript
@autonomath/sdk on npm: zero-runtime-deps Client using the platform fetch (Node 18+, Deno, Bun, browsers). Dual ESM + CJS output with bundled .d.ts. Exponential backoff on 429 / 5xx.
Notes
- Rate limits at launch: anonymous 50 req/month per IP (IPv4 /32, IPv6 /64), JST first-of-month 00:00 reset. Authenticated: metered at
¥3/req 税別 (税込 ¥3.30) via Stripe usage billing, lookup_key = per_request_v2.
- SLA: 99.0% monthly uptime target during beta, fair-warning SLA (no service credits). Raised to 99.5% in the v0.3.0 wave.
- Coverage disclaimer: the catalog is not exhaustive; the tier distribution is skewed toward agriculture and manufacturing at launch. Callers should treat absence of a program as "we may not have it yet", not "it doesn't exist".
Per-SDK changelogs
This page consolidates the API + MCP + SDK changes. For per-SDK release notes at finer granularity (for example @autonomath/[email protected], @autonomath/[email protected], or [email protected]), see the individual npm and PyPI release pages.
Source: this page summarizes the public-facing entries from the GitHub repository CHANGELOG.md and the per-SDK changelogs (sdk/typescript/CHANGELOG.md, sdk/python/CHANGELOG.md) for users.
What counts as a breaking change is defined in docs/versioning.md.