Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 27 additions & 21 deletions compatibility.json
Original file line number Diff line number Diff line change
@@ -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": [
{
Expand Down Expand Up @@ -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": [
Expand Down Expand Up @@ -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": [
Expand Down Expand Up @@ -181,35 +182,40 @@
"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",
"label": "hayate-openapi 0.7.0 main CI",
"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"
}
}
}
52 changes: 29 additions & 23 deletions data/ecosystem.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand All @@ -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"
Expand All @@ -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"
Expand All @@ -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"
Expand All @@ -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"]
Expand Down
35 changes: 18 additions & 17 deletions docs/COMPATIBILITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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` |
Expand All @@ -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).
2 changes: 1 addition & 1 deletion docs/PRODUCTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
Expand Down
4 changes: 2 additions & 2 deletions docs/START.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading