diff --git a/compatibility.json b/compatibility.json index 5a8a349..24942c4 100644 --- a/compatibility.json +++ b/compatibility.json @@ -1,7 +1,7 @@ { - "as_of": "2026-07-28", + "as_of": "2026-07-30", "golden_runtime": { - "lock_sha256": "519eb20f41eda82058b6798c4494e9154301f28687b9ecce07d8251611a0f55f", + "lock_sha256": "ac85300faf33912228958f288aca63604946238326997d55b5fe8d1d452c7563", "node": "24", "platform_packages": [ { @@ -64,12 +64,13 @@ "evidence": [ "golden_app", "mcp_ci", + "mcp_release", "foliomcp_ci" ], "golden": true, "name": "hayate-mcp", "role": "MCP transport, tools, context, and OAuth resource server", - "version": "0.11.1" + "version": "0.12.0" }, { "evidence": [ @@ -102,11 +103,11 @@ "golden": true, "name": "create-hayate", "role": "Composable and production application scaffolds", - "version": "0.11.1" + "version": "0.12.0" } ], "protocols": { - "mcp": "2025-11-25", + "mcp": "2026-07-28", "openapi": "3.1.1" }, "runtimes": [ @@ -181,14 +182,19 @@ "visibility": "private" }, "golden_app": { - "commit": "bc07ff927ce5ca3533f0a006b9000098b9df6e25", - "label": "golden-app main CI", - "url": "https://github.com/hayatepy/golden-app/actions/runs/30315193937" + "commit": "a424e1417baa2830518ce696bb96130f34c90259", + "label": "golden-app MCP 2026-07-28 main CI", + "url": "https://github.com/hayatepy/golden-app/actions/runs/30483909302" }, "mcp_ci": { - "commit": "c1f42c55d47a68fc935460e4a8c07e262a1a7e56", - "label": "hayate-mcp 0.11.1 main CI", - "url": "https://github.com/hayatepy/hayate-mcp/actions/runs/30246879078" + "commit": "175e6ed85a5e9af3e2fd9fcbf8886594bd2f6723", + "label": "hayate-mcp 0.12.0 main CI and conformance", + "url": "https://github.com/hayatepy/hayate-mcp/actions/runs/30481675199" + }, + "mcp_release": { + "commit": "175e6ed85a5e9af3e2fd9fcbf8886594bd2f6723", + "label": "hayate-mcp 0.12.0 release provenance", + "url": "https://github.com/hayatepy/hayate-mcp/actions/runs/30481707512" }, "openapi_ci": { "commit": "5d274a7cc337c3336d5316421691779504e592f7", @@ -196,20 +202,20 @@ "url": "https://github.com/hayatepy/hayate-openapi/actions/runs/30261368101" }, "scaffold_ci": { - "commit": "c3d3f9caf5ff422f508d789e2f3a72b28f363cda", - "label": "create-hayate 0.11.1 main CI (52/52 backend compositions)", - "url": "https://github.com/hayatepy/create-hayate/actions/runs/30310444350" + "commit": "a1974325ce62a4bce5c6ceab27211675e07b0001", + "label": "create-hayate 0.12.0 main CI (52/52 backend compositions)", + "url": "https://github.com/hayatepy/create-hayate/actions/runs/30483290732" }, "scaffold_matrix": { - "artifact_sha256": "292cf716aff9ccec42949ad5731f9fc4b70946cbe2754ffde298b30d42fd2639", - "commit": "c3d3f9caf5ff422f508d789e2f3a72b28f363cda", - "label": "create-hayate 0.11.1 frontend matrix (112/112)", - "url": "https://github.com/hayatepy/create-hayate/actions/runs/30315312815" + "artifact_sha256": "ac4da7c9fe4dec4a5fad80db41833ee38049e4822c727cd674f19eca86e64e5f", + "commit": "a1974325ce62a4bce5c6ceab27211675e07b0001", + "label": "create-hayate 0.12.0 frontend matrix (112/112)", + "url": "https://github.com/hayatepy/create-hayate/actions/runs/30484131668" }, "scaffold_release": { - "commit": "4dc358ec4f0e71c70195d3e0f5ea5b8ad76c3f90", - "label": "create-hayate 0.11.1 release provenance", - "url": "https://github.com/hayatepy/create-hayate/actions/runs/30309786799" + "commit": "a1974325ce62a4bce5c6ceab27211675e07b0001", + "label": "create-hayate 0.12.0 release provenance", + "url": "https://github.com/hayatepy/create-hayate/actions/runs/30483309952" } } } diff --git a/data/ecosystem.toml b/data/ecosystem.toml index efb75b5..c318163 100644 --- a/data/ecosystem.toml +++ b/data/ecosystem.toml @@ -1,20 +1,21 @@ schema_version = 1 -as_of = "2026-07-28" -mcp_revision = "2025-11-25" +as_of = "2026-07-30" +mcp_revision = "2026-07-28" openapi_revision = "3.1.1" minimum_python = "3.12" [profile_evidence] -as_of = "2026-07-28" -commit = "9e27b0191c7fa9f920ad6fe5b126e190268afba2" +benchmark_as_of = "2026-07-28" +capabilities_as_of = "2026-07-30" +commit = "6d0bf1904db0c6893d15f9a7ce6a957a7114f061" benchmark_path = "benchmarks/competitive/results/2026-07-28-hayate-0.15.1-macos-arm64.json" benchmark_result_commit = "561bcf01874e7777b04917ff84e683afff264180" capabilities_path = "benchmarks/competitive/capabilities.json" [sources.golden_app] -label = "golden-app main CI" -url = "https://github.com/hayatepy/golden-app/actions/runs/30315193937" -commit = "bc07ff927ce5ca3533f0a006b9000098b9df6e25" +label = "golden-app MCP 2026-07-28 main CI" +url = "https://github.com/hayatepy/golden-app/actions/runs/30483909302" +commit = "a424e1417baa2830518ce696bb96130f34c90259" [sources.auth_ci] label = "hayate-auth 0.10.1 main CI" @@ -27,9 +28,14 @@ url = "https://github.com/hayatepy/hayate-auth/actions/runs/30271019713" commit = "eff705c335d0903084988edea5b783be258f42e8" [sources.mcp_ci] -label = "hayate-mcp 0.11.1 main CI" -url = "https://github.com/hayatepy/hayate-mcp/actions/runs/30246879078" -commit = "c1f42c55d47a68fc935460e4a8c07e262a1a7e56" +label = "hayate-mcp 0.12.0 main CI and conformance" +url = "https://github.com/hayatepy/hayate-mcp/actions/runs/30481675199" +commit = "175e6ed85a5e9af3e2fd9fcbf8886594bd2f6723" + +[sources.mcp_release] +label = "hayate-mcp 0.12.0 release provenance" +url = "https://github.com/hayatepy/hayate-mcp/actions/runs/30481707512" +commit = "175e6ed85a5e9af3e2fd9fcbf8886594bd2f6723" [sources.openapi_ci] label = "hayate-openapi 0.7.0 main CI" @@ -52,20 +58,20 @@ url = "https://github.com/hayatepy/hayate/actions/runs/30314505506" commit = "9e27b0191c7fa9f920ad6fe5b126e190268afba2" [sources.scaffold_ci] -label = "create-hayate 0.11.1 main CI (52/52 backend compositions)" -url = "https://github.com/hayatepy/create-hayate/actions/runs/30310444350" -commit = "c3d3f9caf5ff422f508d789e2f3a72b28f363cda" +label = "create-hayate 0.12.0 main CI (52/52 backend compositions)" +url = "https://github.com/hayatepy/create-hayate/actions/runs/30483290732" +commit = "a1974325ce62a4bce5c6ceab27211675e07b0001" [sources.scaffold_matrix] -label = "create-hayate 0.11.1 frontend matrix (112/112)" -url = "https://github.com/hayatepy/create-hayate/actions/runs/30315312815" -commit = "c3d3f9caf5ff422f508d789e2f3a72b28f363cda" -artifact_sha256 = "292cf716aff9ccec42949ad5731f9fc4b70946cbe2754ffde298b30d42fd2639" +label = "create-hayate 0.12.0 frontend matrix (112/112)" +url = "https://github.com/hayatepy/create-hayate/actions/runs/30484131668" +commit = "a1974325ce62a4bce5c6ceab27211675e07b0001" +artifact_sha256 = "ac4da7c9fe4dec4a5fad80db41833ee38049e4822c727cd674f19eca86e64e5f" [sources.scaffold_release] -label = "create-hayate 0.11.1 release provenance" -url = "https://github.com/hayatepy/create-hayate/actions/runs/30309786799" -commit = "4dc358ec4f0e71c70195d3e0f5ea5b8ad76c3f90" +label = "create-hayate 0.12.0 release provenance" +url = "https://github.com/hayatepy/create-hayate/actions/runs/30483309952" +commit = "a1974325ce62a4bce5c6ceab27211675e07b0001" [[packages]] name = "hayate" @@ -90,10 +96,10 @@ evidence = ["ecosystem_full"] [[packages]] name = "hayate-mcp" -version = "0.11.1" +version = "0.12.0" role = "MCP transport, tools, context, and OAuth resource server" golden = true -evidence = ["golden_app", "mcp_ci", "foliomcp_ci"] +evidence = ["golden_app", "mcp_ci", "mcp_release", "foliomcp_ci"] [[packages]] name = "hayate-openapi" @@ -111,7 +117,7 @@ evidence = ["golden_app", "foliomcp_ci"] [[packages]] name = "create-hayate" -version = "0.11.1" +version = "0.12.0" role = "Composable and production application scaffolds" golden = true evidence = ["golden_app", "scaffold_ci", "scaffold_matrix", "scaffold_release"] diff --git a/docs/COMPATIBILITY.md b/docs/COMPATIBILITY.md index 928feb0..c46a955 100644 --- a/docs/COMPATIBILITY.md +++ b/docs/COMPATIBILITY.md @@ -2,28 +2,28 @@ This file is generated by `scripts/export_compatibility.py` from recorded, passing CI evidence. Do not edit it manually. The evidence snapshot is dated -**2026-07-28**; all packages remain pre-1.0. +**2026-07-30**; all packages remain pre-1.0. ## Published package snapshot | Package | Version | Role | Production golden app | Evidence | |---|---:|---|---|---| -| [`hayate`](https://github.com/hayatepy/hayate) | `0.15.1` | Core framework and native ASGI, Workers, and Lambda adapters | yes | [golden-app main CI](https://github.com/hayatepy/golden-app/actions/runs/30315193937), [Hayate 0.15.1 downstream full compatibility CI](https://github.com/hayatepy/hayate/actions/runs/30315289736) | +| [`hayate`](https://github.com/hayatepy/hayate) | `0.15.1` | Core framework and native ASGI, Workers, and Lambda adapters | yes | [golden-app MCP 2026-07-28 main CI](https://github.com/hayatepy/golden-app/actions/runs/30483909302), [Hayate 0.15.1 downstream full compatibility CI](https://github.com/hayatepy/hayate/actions/runs/30315289736) | | [`hayate-auth`](https://github.com/hayatepy/hayate-auth) | `0.10.1` | Sessions, API keys, OAuth clients, and authorization server | downstream gate | [hayate-auth 0.10.1 main CI](https://github.com/hayatepy/hayate-auth/actions/runs/30271019764), [hayate-auth 0.10.1 security profiles](https://github.com/hayatepy/hayate-auth/actions/runs/30271019713) | | [`hayate-fetch`](https://github.com/hayatepy/hayate-fetch) | `0.1.3` | Portable WHATWG-style outbound fetch | downstream gate | [Hayate 0.15.1 downstream full compatibility CI](https://github.com/hayatepy/hayate/actions/runs/30315289736) | -| [`hayate-mcp`](https://github.com/hayatepy/hayate-mcp) | `0.11.1` | MCP transport, tools, context, and OAuth resource server | yes | [golden-app main CI](https://github.com/hayatepy/golden-app/actions/runs/30315193937), [hayate-mcp 0.11.1 main CI](https://github.com/hayatepy/hayate-mcp/actions/runs/30246879078), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | -| [`hayate-openapi`](https://github.com/hayatepy/hayate-openapi) | `0.7.0` | OpenAPI 3.1 generation, Scalar, and typed-client contracts | yes | [golden-app main CI](https://github.com/hayatepy/golden-app/actions/runs/30315193937), [hayate-openapi 0.7.0 main CI](https://github.com/hayatepy/hayate-openapi/actions/runs/30261368101), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | -| [`hayate-sql`](https://github.com/hayatepy/hayate-sql) | `0.1.1` | Migration-checked SQL contracts and typed query facades | yes | [golden-app main CI](https://github.com/hayatepy/golden-app/actions/runs/30315193937), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | -| [`create-hayate`](https://github.com/hayatepy/create-hayate) | `0.11.1` | Composable and production application scaffolds | yes | [golden-app main CI](https://github.com/hayatepy/golden-app/actions/runs/30315193937), [create-hayate 0.11.1 main CI (52/52 backend compositions)](https://github.com/hayatepy/create-hayate/actions/runs/30310444350), [create-hayate 0.11.1 frontend matrix (112/112)](https://github.com/hayatepy/create-hayate/actions/runs/30315312815), [create-hayate 0.11.1 release provenance](https://github.com/hayatepy/create-hayate/actions/runs/30309786799) | +| [`hayate-mcp`](https://github.com/hayatepy/hayate-mcp) | `0.12.0` | MCP transport, tools, context, and OAuth resource server | yes | [golden-app MCP 2026-07-28 main CI](https://github.com/hayatepy/golden-app/actions/runs/30483909302), [hayate-mcp 0.12.0 main CI and conformance](https://github.com/hayatepy/hayate-mcp/actions/runs/30481675199), [hayate-mcp 0.12.0 release provenance](https://github.com/hayatepy/hayate-mcp/actions/runs/30481707512), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | +| [`hayate-openapi`](https://github.com/hayatepy/hayate-openapi) | `0.7.0` | OpenAPI 3.1 generation, Scalar, and typed-client contracts | yes | [golden-app MCP 2026-07-28 main CI](https://github.com/hayatepy/golden-app/actions/runs/30483909302), [hayate-openapi 0.7.0 main CI](https://github.com/hayatepy/hayate-openapi/actions/runs/30261368101), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | +| [`hayate-sql`](https://github.com/hayatepy/hayate-sql) | `0.1.1` | Migration-checked SQL contracts and typed query facades | yes | [golden-app MCP 2026-07-28 main CI](https://github.com/hayatepy/golden-app/actions/runs/30483909302), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | +| [`create-hayate`](https://github.com/hayatepy/create-hayate) | `0.12.0` | Composable and production application scaffolds | yes | [golden-app MCP 2026-07-28 main CI](https://github.com/hayatepy/golden-app/actions/runs/30483909302), [create-hayate 0.12.0 main CI (52/52 backend compositions)](https://github.com/hayatepy/create-hayate/actions/runs/30483290732), [create-hayate 0.12.0 frontend matrix (112/112)](https://github.com/hayatepy/create-hayate/actions/runs/30484131668), [create-hayate 0.12.0 release provenance](https://github.com/hayatepy/create-hayate/actions/runs/30483309952) | ## Runtime contracts | Runtime | Executed or supported contract | Status | Evidence | |---|---|---|---| -| Direct | Pure application requests with local SQLite | Golden path | [golden-app main CI](https://github.com/hayatepy/golden-app/actions/runs/30315193937) | -| ASGI | Real Uvicorn process with SQLite | Golden path | [golden-app main CI](https://github.com/hayatepy/golden-app/actions/runs/30315193937) | -| Cloudflare Workers class | Real workerd, D1, RPC-capable WorkerEntrypoint, and class handlers | Golden default | [golden-app main CI](https://github.com/hayatepy/golden-app/actions/runs/30315193937), [Hayate 0.15.1 downstream full compatibility CI](https://github.com/hayatepy/hayate/actions/runs/30315289736), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | -| Cloudflare Workers global | Global fetch export without RPC or scheduled class handlers | HTTP-only compatibility mode | [golden-app main CI](https://github.com/hayatepy/golden-app/actions/runs/30315193937) | +| Direct | Pure application requests with local SQLite | Golden path | [golden-app MCP 2026-07-28 main CI](https://github.com/hayatepy/golden-app/actions/runs/30483909302) | +| ASGI | Real Uvicorn process with SQLite | Golden path | [golden-app MCP 2026-07-28 main CI](https://github.com/hayatepy/golden-app/actions/runs/30483909302) | +| Cloudflare Workers class | Real workerd, D1, RPC-capable WorkerEntrypoint, and class handlers | Golden default | [golden-app MCP 2026-07-28 main CI](https://github.com/hayatepy/golden-app/actions/runs/30483909302), [Hayate 0.15.1 downstream full compatibility CI](https://github.com/hayatepy/hayate/actions/runs/30315289736), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | +| Cloudflare Workers global | Global fetch export without RPC or scheduled class handlers | HTTP-only compatibility mode | [golden-app MCP 2026-07-28 main CI](https://github.com/hayatepy/golden-app/actions/runs/30483909302) | | AWS Lambda | API Gateway v2 and Function URL buffering plus native response streaming | Core native adapters; outside the golden production flow | [Hayate 0.15.1 main CI](https://github.com/hayatepy/hayate/actions/runs/30314505506) | ASGI is a deployment adapter, not a Cloudflare requirement. The Workers class @@ -37,7 +37,7 @@ and does not imply named RPC or scheduled class-handler support. | Minimum package Python | `3.12+` | | Golden app Python | `3.13` | | Golden app Node.js | `24` | -| MCP revision | `2025-11-25` | +| MCP revision | `2026-07-28` | | OpenAPI revision | `3.1.1` | | Workers compatibility date | `2026-07-01` | | Workers flags | `python_workers` | @@ -49,20 +49,21 @@ and does not imply named RPC or scheduled class-handler support. | `workers-py` | `1.15.0` | | `workers-runtime-sdk` | `1.6.3` | -Golden lock SHA-256: `519eb20f41eda82058b6798c4494e9154301f28687b9ecce07d8251611a0f55f` +Golden lock SHA-256: `ac85300faf33912228958f288aca63604946238326997d55b5fe8d1d452c7563` ## Evidence sources -- [golden-app main CI](https://github.com/hayatepy/golden-app/actions/runs/30315193937) at `bc07ff927ce5ca3533f0a006b9000098b9df6e25` +- [golden-app MCP 2026-07-28 main CI](https://github.com/hayatepy/golden-app/actions/runs/30483909302) at `a424e1417baa2830518ce696bb96130f34c90259` - [hayate-auth 0.10.1 main CI](https://github.com/hayatepy/hayate-auth/actions/runs/30271019764) at `eff705c335d0903084988edea5b783be258f42e8` - [hayate-auth 0.10.1 security profiles](https://github.com/hayatepy/hayate-auth/actions/runs/30271019713) at `eff705c335d0903084988edea5b783be258f42e8` -- [hayate-mcp 0.11.1 main CI](https://github.com/hayatepy/hayate-mcp/actions/runs/30246879078) at `c1f42c55d47a68fc935460e4a8c07e262a1a7e56` +- [hayate-mcp 0.12.0 main CI and conformance](https://github.com/hayatepy/hayate-mcp/actions/runs/30481675199) at `175e6ed85a5e9af3e2fd9fcbf8886594bd2f6723` +- [hayate-mcp 0.12.0 release provenance](https://github.com/hayatepy/hayate-mcp/actions/runs/30481707512) at `175e6ed85a5e9af3e2fd9fcbf8886594bd2f6723` - [hayate-openapi 0.7.0 main CI](https://github.com/hayatepy/hayate-openapi/actions/runs/30261368101) at `5d274a7cc337c3336d5316421691779504e592f7` - FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223b5774278b21512e176f64f93d525` - [Hayate 0.15.1 downstream full compatibility CI](https://github.com/hayatepy/hayate/actions/runs/30315289736) at `9e27b0191c7fa9f920ad6fe5b126e190268afba2` - [Hayate 0.15.1 main CI](https://github.com/hayatepy/hayate/actions/runs/30314505506) at `9e27b0191c7fa9f920ad6fe5b126e190268afba2` -- [create-hayate 0.11.1 main CI (52/52 backend compositions)](https://github.com/hayatepy/create-hayate/actions/runs/30310444350) at `c3d3f9caf5ff422f508d789e2f3a72b28f363cda` -- [create-hayate 0.11.1 frontend matrix (112/112)](https://github.com/hayatepy/create-hayate/actions/runs/30315312815) at `c3d3f9caf5ff422f508d789e2f3a72b28f363cda`; aggregate evidence SHA-256 `292cf716aff9ccec42949ad5731f9fc4b70946cbe2754ffde298b30d42fd2639` -- [create-hayate 0.11.1 release provenance](https://github.com/hayatepy/create-hayate/actions/runs/30309786799) at `4dc358ec4f0e71c70195d3e0f5ea5b8ad76c3f90` +- [create-hayate 0.12.0 main CI (52/52 backend compositions)](https://github.com/hayatepy/create-hayate/actions/runs/30483290732) at `a1974325ce62a4bce5c6ceab27211675e07b0001` +- [create-hayate 0.12.0 frontend matrix (112/112)](https://github.com/hayatepy/create-hayate/actions/runs/30484131668) at `a1974325ce62a4bce5c6ceab27211675e07b0001`; aggregate evidence SHA-256 `ac4da7c9fe4dec4a5fad80db41833ee38049e4822c727cd674f19eca86e64e5f` +- [create-hayate 0.12.0 release provenance](https://github.com/hayatepy/create-hayate/actions/runs/30483309952) at `a1974325ce62a4bce5c6ceab27211675e07b0001` Machine-readable data: [`compatibility.json`](../compatibility.json). diff --git a/docs/PRODUCTION.md b/docs/PRODUCTION.md index ac14d29..07f0a73 100644 --- a/docs/PRODUCTION.md +++ b/docs/PRODUCTION.md @@ -11,7 +11,7 @@ data. |---|---| | Portable HTTP application | Hayate core in the golden app | | OpenAPI and TypeScript client | Checked `openapi.json` and `client/api-types.ts` | -| Agent tools | MCP 2025-11-25 initialize and `tools/call` E2E | +| Agent tools | MCP 2026-07-28 initialize, discovery, and `tools/call` E2E | | Request identity | Fail-closed Cloudflare Access JWT/JWKS verification | | Data access | Migration-checked SQL over SQLite locally and D1 on Workers | | Browser boundary | Exact-origin CORS, security headers, and a 1 MiB body limit | diff --git a/docs/START.md b/docs/START.md index bef7b62..7cdce32 100644 --- a/docs/START.md +++ b/docs/START.md @@ -2,13 +2,13 @@ This is the canonical first path. It produces a tested application with one core for ASGI/SQLite and Cloudflare Workers/D1, plus OpenAPI 3.1.1, MCP -2025-11-25, Cloudflare Access integration, checked SQL, and production +2026-07-28, Cloudflare Access integration, checked SQL, and production middleware. Install [uv](https://docs.astral.sh/uv/), then run: ```sh -uvx --refresh --from create-hayate==0.11.1 create-hayate my-app --template workers --preset production +uvx --refresh --from create-hayate==0.12.0 create-hayate my-app --template workers --preset production cd my-app uv sync test -f uv.lock diff --git a/evidence/golden-app-compatibility.json b/evidence/golden-app-compatibility.json index a56c986..ffae84c 100644 --- a/evidence/golden-app-compatibility.json +++ b/evidence/golden-app-compatibility.json @@ -1,7 +1,7 @@ { - "generated_by": "create-hayate 0.11.1", - "lock_sha256": "519eb20f41eda82058b6798c4494e9154301f28687b9ecce07d8251611a0f55f", - "mcp_revision": "2025-11-25", + "generated_by": "create-hayate 0.12.0", + "lock_sha256": "ac85300faf33912228958f288aca63604946238326997d55b5fe8d1d452c7563", + "mcp_revision": "2026-07-28", "node": "24", "packages": [ { @@ -9,7 +9,7 @@ "package": "create-hayate", "role": "Scaffold source", "source": "golden-app.toml", - "version": "0.11.1" + "version": "0.12.0" }, { "commit": null, @@ -30,7 +30,7 @@ "package": "hayate-mcp", "role": "MCP transport and tools runtime", "source": "uv.lock", - "version": "0.11.1" + "version": "0.12.0" }, { "commit": null, diff --git a/llms.txt b/llms.txt index 27a120a..dcc9a92 100644 --- a/llms.txt +++ b/llms.txt @@ -24,7 +24,7 @@ Packages: - hayate: framework and runtime adapters - create-hayate: composable and production scaffolds - hayate-openapi: OpenAPI 3.1.1, Scalar, and typed-client contracts -- hayate-mcp: MCP 2025-11-25 transport, tools, context, and OAuth resource server +- hayate-mcp: MCP 2026-07-28 transport, tools, context, discovery, and OAuth resource server - hayate-auth: sessions, API keys, OAuth clients, and authorization server - hayate-sql: migration-checked SQL and typed query facades - hayate-fetch: portable outbound WHATWG-style fetch @@ -35,7 +35,7 @@ Implementation rules: - Use the WorkerEntrypoint class as the feature-complete Workers default. - Treat the optional global Workers export as HTTP-only; it does not support named RPC methods or scheduled class handlers. -- Negotiate MCP revision 2025-11-25 and preserve request identity across HTTP +- Negotiate MCP revision 2026-07-28 and preserve request identity across HTTP and MCP tool calls. - Keep SQL in checked query files and apply production migrations separately. - Fail closed when production identity or platform bindings are missing. diff --git a/profile/README.md b/profile/README.md index 53a5c74..a3e09ee 100644 --- a/profile/README.md +++ b/profile/README.md @@ -61,7 +61,7 @@ score. Feature breadth is evaluated separately and without a weighted winner: - **Portable Python agent API — Hayate advantaged.** Hayate has the clearest first-party path when one Python application must run on ASGI, native Cloudflare Workers, and buffered or response-streaming AWS Lambda HTTP payload v2 while combining typed HTTP - contracts, cached dependency graphs, MCP 2025-11-25, authorization, and checked + contracts, cached dependency graphs, MCP 2026-07-28, authorization, and checked SQLite/D1 access. - **Conventional typed Python API — competitive.** Hayate now meets FastAPI's central typed request/response, OpenAPI, dependency-graph, direct-test, realtime, lifecycle, @@ -82,8 +82,8 @@ score. Feature breadth is evaluated separately and without a weighted winner: and upload size than Python Workers. Read the -[immutable benchmark publication](https://github.com/hayatepy/hayate/blob/9e27b0191c7fa9f920ad6fe5b126e190268afba2/benchmarks/competitive/results/2026-07-28-hayate-0.15.1-macos-arm64.md) and the dated, source-backed -[capability matrix](https://github.com/hayatepy/hayate/blob/9e27b0191c7fa9f920ad6fe5b126e190268afba2/docs/capabilities.md) for methodology, raw artifacts, +[immutable benchmark publication](https://github.com/hayatepy/hayate/blob/6d0bf1904db0c6893d15f9a7ce6a957a7114f061/benchmarks/competitive/results/2026-07-28-hayate-0.15.1-macos-arm64.md) and the dated, source-backed +[capability matrix](https://github.com/hayatepy/hayate/blob/6d0bf1904db0c6893d15f9a7ce6a957a7114f061/docs/capabilities.md) for methodology, raw artifacts, profile verdicts, and limitations. ## Choose by outcome @@ -92,7 +92,7 @@ profile verdicts, and limitations. |---|---| | Build a web API on ASGI, Workers, or Lambda | [`hayate`](https://github.com/hayatepy/hayate) | | Generate OpenAPI 3.1 and typed clients | [`hayate-openapi`](https://github.com/hayatepy/hayate-openapi) | -| Expose MCP 2025-11-25 tools | [`hayate-mcp`](https://github.com/hayatepy/hayate-mcp) | +| Expose MCP 2026-07-28 tools | [`hayate-mcp`](https://github.com/hayatepy/hayate-mcp) | | Add sessions, API keys, OAuth, or an authorization server | [`hayate-auth`](https://github.com/hayatepy/hayate-auth) | | Use checked SQL with PostgreSQL, SQLite, or D1 | [`hayate-sql`](https://github.com/hayatepy/hayate-sql) | | Make portable outbound requests | [`hayate-fetch`](https://github.com/hayatepy/hayate-fetch) | diff --git a/profile/README.md.in b/profile/README.md.in index 5ca50b2..431e614 100644 --- a/profile/README.md.in +++ b/profile/README.md.in @@ -61,7 +61,7 @@ profile verdicts, and limitations. |---|---| | Build a web API on ASGI, Workers, or Lambda | [`hayate`](https://github.com/hayatepy/hayate) | | Generate OpenAPI 3.1 and typed clients | [`hayate-openapi`](https://github.com/hayatepy/hayate-openapi) | -| Expose MCP 2025-11-25 tools | [`hayate-mcp`](https://github.com/hayatepy/hayate-mcp) | +| Expose MCP 2026-07-28 tools | [`hayate-mcp`](https://github.com/hayatepy/hayate-mcp) | | Add sessions, API keys, OAuth, or an authorization server | [`hayate-auth`](https://github.com/hayatepy/hayate-auth) | | Use checked SQL with PostgreSQL, SQLite, or D1 | [`hayate-sql`](https://github.com/hayatepy/hayate-sql) | | Make portable outbound requests | [`hayate-fetch`](https://github.com/hayatepy/hayate-fetch) | diff --git a/scripts/export_profile.py b/scripts/export_profile.py index 13f5afc..4332fdd 100644 --- a/scripts/export_profile.py +++ b/scripts/export_profile.py @@ -110,7 +110,7 @@ def _validate( if capabilities.get("schema_version") != 1: raise ValueError("unsupported capability schema") - if capabilities.get("as_of") != source["as_of"]: + if capabilities.get("as_of") != source["capabilities_as_of"]: raise ValueError("capability evidence date does not match manifest") if capabilities.get("universal_winner") is not None: raise ValueError("organization profile must not publish a universal winner") @@ -280,7 +280,7 @@ def main() -> int: benchmark, capabilities, links, - benchmark_date=manifest["profile_evidence"]["as_of"], + benchmark_date=manifest["profile_evidence"]["benchmark_as_of"], ) if args.check: if not OUTPUT.exists() or OUTPUT.read_text(encoding="utf-8") != expected: diff --git a/tests/test_export_profile.py b/tests/test_export_profile.py index 643c017..a976e42 100644 --- a/tests/test_export_profile.py +++ b/tests/test_export_profile.py @@ -52,7 +52,7 @@ def capabilities() -> dict[str, object]: } return { "schema_version": 1, - "as_of": "2026-07-28", + "as_of": "2026-07-30", "universal_winner": None, "profiles": [ { @@ -68,7 +68,8 @@ def capabilities() -> dict[str, object]: def source() -> dict[str, str]: return { - "as_of": "2026-07-28", + "benchmark_as_of": "2026-07-28", + "capabilities_as_of": "2026-07-30", "benchmark_result_commit": "result", }