From df4fb6d83a9b56b181c8b863bd49a2ecb0a6d3c5 Mon Sep 17 00:00:00 2001 From: Yusuke Hayashi Date: Thu, 30 Jul 2026 10:15:09 +0900 Subject: [PATCH] docs: publish current release evidence and canonical links --- .github/ISSUE_TEMPLATE/design_partner.yml | 2 +- compatibility.json | 67 +++++++++++++---------- data/ecosystem.toml | 63 +++++++++++---------- docs/COMPATIBILITY.md | 41 +++++++------- docs/START.md | 4 +- evidence/golden-app-compatibility.json | 10 ++-- llms.txt | 10 ++-- profile/README.md | 4 +- profile/README.md.in | 4 +- tests/test_public_links.py | 44 +++++++++++++++ 10 files changed, 154 insertions(+), 95 deletions(-) create mode 100644 tests/test_public_links.py diff --git a/.github/ISSUE_TEMPLATE/design_partner.yml b/.github/ISSUE_TEMPLATE/design_partner.yml index f364572..1697215 100644 --- a/.github/ISSUE_TEMPLATE/design_partner.yml +++ b/.github/ISSUE_TEMPLATE/design_partner.yml @@ -9,7 +9,7 @@ body: This issue is public. Share only high-level, non-confidential information. Do not include credentials, customer data, proprietary code, unreleased product details, or security vulnerabilities. Read the - [program description](https://github.com/hayatepy/.github/blob/main/docs/DESIGN_PARTNERS.md) + [program description](https://hayatepy.dev/contribute/#design-partners) before applying. - type: dropdown id: track diff --git a/compatibility.json b/compatibility.json index 9c97ef9..1c410e5 100644 --- a/compatibility.json +++ b/compatibility.json @@ -1,7 +1,7 @@ { "as_of": "2026-07-30", "golden_runtime": { - "lock_sha256": "400de843b728b759aafc6fa55f1a810021f4c08837dbc6677e33db1313b2bcd8", + "lock_sha256": "82fa8313483ca0412ba389e5ca610f47ea943a153c8ca5210cb881981d9a129e", "node": "24", "platform_packages": [ { @@ -34,12 +34,14 @@ { "evidence": [ "golden_app", - "ecosystem_full" + "ecosystem_full", + "core_ci", + "core_release" ], "golden": true, "name": "hayate", "role": "Core framework and native ASGI, Workers, and Lambda adapters", - "version": "0.15.1" + "version": "0.15.2" }, { "evidence": [ @@ -71,7 +73,7 @@ "golden": true, "name": "hayate-mcp", "role": "MCP transport, tools, context, and OAuth resource server", - "version": "0.12.0" + "version": "0.12.1" }, { "evidence": [ @@ -105,7 +107,7 @@ "golden": true, "name": "create-hayate", "role": "Composable applications with drift-checked first-party TypeScript clients", - "version": "0.13.1" + "version": "0.13.2" } ], "protocols": { @@ -174,14 +176,19 @@ "url": "https://github.com/hayatepy/hayate-auth/actions/runs/30498321150" }, "core_ci": { - "commit": "9e27b0191c7fa9f920ad6fe5b126e190268afba2", - "label": "Hayate 0.15.1 main CI", - "url": "https://github.com/hayatepy/hayate/actions/runs/30314505506" + "commit": "8cb27385cbc2655e531c37bdcdb45b1309c3a392", + "label": "Hayate 0.15.2 main CI", + "url": "https://github.com/hayatepy/hayate/actions/runs/30501131371" + }, + "core_release": { + "commit": "8cb27385cbc2655e531c37bdcdb45b1309c3a392", + "label": "Hayate 0.15.2 release provenance", + "url": "https://github.com/hayatepy/hayate/actions/runs/30501262533" }, "ecosystem_full": { - "commit": "9e27b0191c7fa9f920ad6fe5b126e190268afba2", - "label": "Hayate 0.15.1 downstream full compatibility CI", - "url": "https://github.com/hayatepy/hayate/actions/runs/30315289736" + "commit": "64dfb96f2397685c9fe017382855749f445d3697", + "label": "Hayate 0.15.2 downstream full compatibility CI", + "url": "https://github.com/hayatepy/hayate/actions/runs/30501023744" }, "foliomcp_ci": { "commit": "a4d110efc223b5774278b21512e176f64f93d525", @@ -189,19 +196,19 @@ "visibility": "private" }, "golden_app": { - "commit": "cfa07c1d129b588b3c539a6d6c9fcdd443cefbf7", - "label": "golden-app create-hayate 0.13.1 main CI", - "url": "https://github.com/hayatepy/golden-app/actions/runs/30494459938" + "commit": "87e8e907c769ffc5ff24926470eb1ec7641f63b5", + "label": "golden-app release lock main CI", + "url": "https://github.com/hayatepy/golden-app/actions/runs/30504943669" }, "mcp_ci": { - "commit": "175e6ed85a5e9af3e2fd9fcbf8886594bd2f6723", - "label": "hayate-mcp 0.12.0 main CI and conformance", - "url": "https://github.com/hayatepy/hayate-mcp/actions/runs/30481675199" + "commit": "249b2df4bc41a0603e168b22c53815e31d2d5711", + "label": "hayate-mcp 0.12.1 main CI and MCP 2026-07-28 conformance", + "url": "https://github.com/hayatepy/hayate-mcp/actions/runs/30504249052" }, "mcp_release": { - "commit": "175e6ed85a5e9af3e2fd9fcbf8886594bd2f6723", - "label": "hayate-mcp 0.12.0 release provenance", - "url": "https://github.com/hayatepy/hayate-mcp/actions/runs/30481707512" + "commit": "249b2df4bc41a0603e168b22c53815e31d2d5711", + "label": "hayate-mcp 0.12.1 release provenance", + "url": "https://github.com/hayatepy/hayate-mcp/actions/runs/30504320516" }, "openapi_ci": { "commit": "2ed34215ec3dd5ebd0a0780f7b7903f0b3492a78", @@ -214,20 +221,20 @@ "url": "https://github.com/hayatepy/hayate-openapi/actions/runs/30487193584" }, "scaffold_ci": { - "commit": "97d19b59e1256ec6d50e9ecb725296442fda4b20", - "label": "create-hayate 0.13.1 main CI (52/52 backend compositions)", - "url": "https://github.com/hayatepy/create-hayate/actions/runs/30493342848" + "commit": "8bcca24bbd43854c05a6467d26b675c20a89b63e", + "label": "create-hayate 0.13.2 main CI and feature matrix", + "url": "https://github.com/hayatepy/create-hayate/actions/runs/30502494267" }, "scaffold_matrix": { - "artifact_sha256": "f7be85bf13c135c9c112c3cb504c337f3e0fbad501fe575425ad69be898a84df", - "commit": "c19d726656ed0b7a88634c761426698501e241a6", - "label": "create-hayate 0.13.1 frontend matrix (112/112)", - "url": "https://github.com/hayatepy/create-hayate/actions/runs/30493092512" + "artifact_sha256": "f207dcd979c695508c4bf672432848e5469ebf4ab1b58b0f2c4fecb8e004af05", + "commit": "2e3d091b903d7a649ab5f03f4fbf058f4e27d0fa", + "label": "create-hayate 0.13.2 frontend smoke matrix (10/10)", + "url": "https://github.com/hayatepy/create-hayate/actions/runs/30502309672" }, "scaffold_release": { - "commit": "97d19b59e1256ec6d50e9ecb725296442fda4b20", - "label": "create-hayate 0.13.1 release provenance", - "url": "https://github.com/hayatepy/create-hayate/actions/runs/30493486890" + "commit": "8bcca24bbd43854c05a6467d26b675c20a89b63e", + "label": "create-hayate 0.13.2 release provenance", + "url": "https://github.com/hayatepy/create-hayate/actions/runs/30502570222" } } } diff --git a/data/ecosystem.toml b/data/ecosystem.toml index d7c48fe..435dbd9 100644 --- a/data/ecosystem.toml +++ b/data/ecosystem.toml @@ -13,9 +13,9 @@ benchmark_result_commit = "561bcf01874e7777b04917ff84e683afff264180" capabilities_path = "benchmarks/competitive/capabilities.json" [sources.golden_app] -label = "golden-app create-hayate 0.13.1 main CI" -url = "https://github.com/hayatepy/golden-app/actions/runs/30494459938" -commit = "cfa07c1d129b588b3c539a6d6c9fcdd443cefbf7" +label = "golden-app release lock main CI" +url = "https://github.com/hayatepy/golden-app/actions/runs/30504943669" +commit = "87e8e907c769ffc5ff24926470eb1ec7641f63b5" [sources.auth_ci] label = "hayate-auth 0.10.4 main CI" @@ -33,14 +33,14 @@ url = "https://github.com/hayatepy/hayate-auth/actions/runs/30498396435" commit = "938751d0f225def770d6ae47e1da3da40829c8d1" [sources.mcp_ci] -label = "hayate-mcp 0.12.0 main CI and conformance" -url = "https://github.com/hayatepy/hayate-mcp/actions/runs/30481675199" -commit = "175e6ed85a5e9af3e2fd9fcbf8886594bd2f6723" +label = "hayate-mcp 0.12.1 main CI and MCP 2026-07-28 conformance" +url = "https://github.com/hayatepy/hayate-mcp/actions/runs/30504249052" +commit = "249b2df4bc41a0603e168b22c53815e31d2d5711" [sources.mcp_release] -label = "hayate-mcp 0.12.0 release provenance" -url = "https://github.com/hayatepy/hayate-mcp/actions/runs/30481707512" -commit = "175e6ed85a5e9af3e2fd9fcbf8886594bd2f6723" +label = "hayate-mcp 0.12.1 release provenance" +url = "https://github.com/hayatepy/hayate-mcp/actions/runs/30504320516" +commit = "249b2df4bc41a0603e168b22c53815e31d2d5711" [sources.openapi_ci] label = "hayate-openapi 0.8.1 main CI and TypeScript interoperability" @@ -58,37 +58,42 @@ commit = "a4d110efc223b5774278b21512e176f64f93d525" visibility = "private" [sources.ecosystem_full] -label = "Hayate 0.15.1 downstream full compatibility CI" -url = "https://github.com/hayatepy/hayate/actions/runs/30315289736" -commit = "9e27b0191c7fa9f920ad6fe5b126e190268afba2" +label = "Hayate 0.15.2 downstream full compatibility CI" +url = "https://github.com/hayatepy/hayate/actions/runs/30501023744" +commit = "64dfb96f2397685c9fe017382855749f445d3697" [sources.core_ci] -label = "Hayate 0.15.1 main CI" -url = "https://github.com/hayatepy/hayate/actions/runs/30314505506" -commit = "9e27b0191c7fa9f920ad6fe5b126e190268afba2" +label = "Hayate 0.15.2 main CI" +url = "https://github.com/hayatepy/hayate/actions/runs/30501131371" +commit = "8cb27385cbc2655e531c37bdcdb45b1309c3a392" + +[sources.core_release] +label = "Hayate 0.15.2 release provenance" +url = "https://github.com/hayatepy/hayate/actions/runs/30501262533" +commit = "8cb27385cbc2655e531c37bdcdb45b1309c3a392" [sources.scaffold_ci] -label = "create-hayate 0.13.1 main CI (52/52 backend compositions)" -url = "https://github.com/hayatepy/create-hayate/actions/runs/30493342848" -commit = "97d19b59e1256ec6d50e9ecb725296442fda4b20" +label = "create-hayate 0.13.2 main CI and feature matrix" +url = "https://github.com/hayatepy/create-hayate/actions/runs/30502494267" +commit = "8bcca24bbd43854c05a6467d26b675c20a89b63e" [sources.scaffold_matrix] -label = "create-hayate 0.13.1 frontend matrix (112/112)" -url = "https://github.com/hayatepy/create-hayate/actions/runs/30493092512" -commit = "c19d726656ed0b7a88634c761426698501e241a6" -artifact_sha256 = "f7be85bf13c135c9c112c3cb504c337f3e0fbad501fe575425ad69be898a84df" +label = "create-hayate 0.13.2 frontend smoke matrix (10/10)" +url = "https://github.com/hayatepy/create-hayate/actions/runs/30502309672" +commit = "2e3d091b903d7a649ab5f03f4fbf058f4e27d0fa" +artifact_sha256 = "f207dcd979c695508c4bf672432848e5469ebf4ab1b58b0f2c4fecb8e004af05" [sources.scaffold_release] -label = "create-hayate 0.13.1 release provenance" -url = "https://github.com/hayatepy/create-hayate/actions/runs/30493486890" -commit = "97d19b59e1256ec6d50e9ecb725296442fda4b20" +label = "create-hayate 0.13.2 release provenance" +url = "https://github.com/hayatepy/create-hayate/actions/runs/30502570222" +commit = "8bcca24bbd43854c05a6467d26b675c20a89b63e" [[packages]] name = "hayate" -version = "0.15.1" +version = "0.15.2" role = "Core framework and native ASGI, Workers, and Lambda adapters" golden = true -evidence = ["golden_app", "ecosystem_full"] +evidence = ["golden_app", "ecosystem_full", "core_ci", "core_release"] [[packages]] name = "hayate-auth" @@ -106,7 +111,7 @@ evidence = ["ecosystem_full"] [[packages]] name = "hayate-mcp" -version = "0.12.0" +version = "0.12.1" role = "MCP transport, tools, context, and OAuth resource server" golden = true evidence = ["golden_app", "mcp_ci", "mcp_release", "foliomcp_ci"] @@ -127,7 +132,7 @@ evidence = ["golden_app", "foliomcp_ci"] [[packages]] name = "create-hayate" -version = "0.13.1" +version = "0.13.2" role = "Composable applications with drift-checked first-party TypeScript clients" golden = true evidence = ["golden_app", "scaffold_ci", "scaffold_matrix", "scaffold_release"] diff --git a/docs/COMPATIBILITY.md b/docs/COMPATIBILITY.md index 72c4b01..8476928 100644 --- a/docs/COMPATIBILITY.md +++ b/docs/COMPATIBILITY.md @@ -8,23 +8,23 @@ passing CI evidence. Do not edit it manually. The evidence snapshot is dated | 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 create-hayate 0.13.1 main CI](https://github.com/hayatepy/golden-app/actions/runs/30494459938), [Hayate 0.15.1 downstream full compatibility CI](https://github.com/hayatepy/hayate/actions/runs/30315289736) | +| [`hayate`](https://github.com/hayatepy/hayate) | `0.15.2` | Core framework and native ASGI, Workers, and Lambda adapters | yes | [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30504943669), [Hayate 0.15.2 downstream full compatibility CI](https://github.com/hayatepy/hayate/actions/runs/30501023744), [Hayate 0.15.2 main CI](https://github.com/hayatepy/hayate/actions/runs/30501131371), [Hayate 0.15.2 release provenance](https://github.com/hayatepy/hayate/actions/runs/30501262533) | | [`hayate-auth`](https://github.com/hayatepy/hayate-auth) | `0.10.4` | Sessions, API keys, OAuth clients, and authorization server | downstream gate | [hayate-auth 0.10.4 main CI](https://github.com/hayatepy/hayate-auth/actions/runs/30498321148), [hayate-auth 0.10.4 security profiles](https://github.com/hayatepy/hayate-auth/actions/runs/30498321150), [hayate-auth 0.10.4 release provenance](https://github.com/hayatepy/hayate-auth/actions/runs/30498396435) | -| [`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.12.0` | MCP transport, tools, context, and OAuth resource server | yes | [golden-app create-hayate 0.13.1 main CI](https://github.com/hayatepy/golden-app/actions/runs/30494459938), [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.8.1` | OpenAPI 3.1, Scalar, and generated zero-runtime TypeScript clients | yes | [golden-app create-hayate 0.13.1 main CI](https://github.com/hayatepy/golden-app/actions/runs/30494459938), [hayate-openapi 0.8.1 main CI and TypeScript interoperability](https://github.com/hayatepy/hayate-openapi/actions/runs/30487122341), [hayate-openapi 0.8.1 release provenance](https://github.com/hayatepy/hayate-openapi/actions/runs/30487193584), 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 create-hayate 0.13.1 main CI](https://github.com/hayatepy/golden-app/actions/runs/30494459938), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | -| [`create-hayate`](https://github.com/hayatepy/create-hayate) | `0.13.1` | Composable applications with drift-checked first-party TypeScript clients | yes | [golden-app create-hayate 0.13.1 main CI](https://github.com/hayatepy/golden-app/actions/runs/30494459938), [create-hayate 0.13.1 main CI (52/52 backend compositions)](https://github.com/hayatepy/create-hayate/actions/runs/30493342848), [create-hayate 0.13.1 frontend matrix (112/112)](https://github.com/hayatepy/create-hayate/actions/runs/30493092512), [create-hayate 0.13.1 release provenance](https://github.com/hayatepy/create-hayate/actions/runs/30493486890) | +| [`hayate-fetch`](https://github.com/hayatepy/hayate-fetch) | `0.1.3` | Portable WHATWG-style outbound fetch | downstream gate | [Hayate 0.15.2 downstream full compatibility CI](https://github.com/hayatepy/hayate/actions/runs/30501023744) | +| [`hayate-mcp`](https://github.com/hayatepy/hayate-mcp) | `0.12.1` | MCP transport, tools, context, and OAuth resource server | yes | [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30504943669), [hayate-mcp 0.12.1 main CI and MCP 2026-07-28 conformance](https://github.com/hayatepy/hayate-mcp/actions/runs/30504249052), [hayate-mcp 0.12.1 release provenance](https://github.com/hayatepy/hayate-mcp/actions/runs/30504320516), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | +| [`hayate-openapi`](https://github.com/hayatepy/hayate-openapi) | `0.8.1` | OpenAPI 3.1, Scalar, and generated zero-runtime TypeScript clients | yes | [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30504943669), [hayate-openapi 0.8.1 main CI and TypeScript interoperability](https://github.com/hayatepy/hayate-openapi/actions/runs/30487122341), [hayate-openapi 0.8.1 release provenance](https://github.com/hayatepy/hayate-openapi/actions/runs/30487193584), 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 release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30504943669), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | +| [`create-hayate`](https://github.com/hayatepy/create-hayate) | `0.13.2` | Composable applications with drift-checked first-party TypeScript clients | yes | [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30504943669), [create-hayate 0.13.2 main CI and feature matrix](https://github.com/hayatepy/create-hayate/actions/runs/30502494267), [create-hayate 0.13.2 frontend smoke matrix (10/10)](https://github.com/hayatepy/create-hayate/actions/runs/30502309672), [create-hayate 0.13.2 release provenance](https://github.com/hayatepy/create-hayate/actions/runs/30502570222) | ## Runtime contracts | Runtime | Executed or supported contract | Status | Evidence | |---|---|---|---| -| Direct | Pure application requests with local SQLite | Golden path | [golden-app create-hayate 0.13.1 main CI](https://github.com/hayatepy/golden-app/actions/runs/30494459938) | -| ASGI | Real Uvicorn process with SQLite | Golden path | [golden-app create-hayate 0.13.1 main CI](https://github.com/hayatepy/golden-app/actions/runs/30494459938) | -| Cloudflare Workers class | Real workerd, D1, RPC-capable WorkerEntrypoint, and class handlers | Golden default | [golden-app create-hayate 0.13.1 main CI](https://github.com/hayatepy/golden-app/actions/runs/30494459938), [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 create-hayate 0.13.1 main CI](https://github.com/hayatepy/golden-app/actions/runs/30494459938) | -| 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) | +| Direct | Pure application requests with local SQLite | Golden path | [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30504943669) | +| ASGI | Real Uvicorn process with SQLite | Golden path | [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30504943669) | +| Cloudflare Workers class | Real workerd, D1, RPC-capable WorkerEntrypoint, and class handlers | Golden default | [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30504943669), [Hayate 0.15.2 downstream full compatibility CI](https://github.com/hayatepy/hayate/actions/runs/30501023744), 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 release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30504943669) | +| AWS Lambda | API Gateway v2 and Function URL buffering plus native response streaming | Core native adapters; outside the golden production flow | [Hayate 0.15.2 main CI](https://github.com/hayatepy/hayate/actions/runs/30501131371) | ASGI is a deployment adapter, not a Cloudflare requirement. The Workers class entrypoint is the feature-complete default. The global entrypoint is HTTP-only @@ -49,23 +49,24 @@ 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: `400de843b728b759aafc6fa55f1a810021f4c08837dbc6677e33db1313b2bcd8` +Golden lock SHA-256: `82fa8313483ca0412ba389e5ca610f47ea943a153c8ca5210cb881981d9a129e` ## Evidence sources -- [golden-app create-hayate 0.13.1 main CI](https://github.com/hayatepy/golden-app/actions/runs/30494459938) at `cfa07c1d129b588b3c539a6d6c9fcdd443cefbf7` +- [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30504943669) at `87e8e907c769ffc5ff24926470eb1ec7641f63b5` - [hayate-auth 0.10.4 main CI](https://github.com/hayatepy/hayate-auth/actions/runs/30498321148) at `938751d0f225def770d6ae47e1da3da40829c8d1` - [hayate-auth 0.10.4 security profiles](https://github.com/hayatepy/hayate-auth/actions/runs/30498321150) at `938751d0f225def770d6ae47e1da3da40829c8d1` - [hayate-auth 0.10.4 release provenance](https://github.com/hayatepy/hayate-auth/actions/runs/30498396435) at `938751d0f225def770d6ae47e1da3da40829c8d1` -- [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-mcp 0.12.1 main CI and MCP 2026-07-28 conformance](https://github.com/hayatepy/hayate-mcp/actions/runs/30504249052) at `249b2df4bc41a0603e168b22c53815e31d2d5711` +- [hayate-mcp 0.12.1 release provenance](https://github.com/hayatepy/hayate-mcp/actions/runs/30504320516) at `249b2df4bc41a0603e168b22c53815e31d2d5711` - [hayate-openapi 0.8.1 main CI and TypeScript interoperability](https://github.com/hayatepy/hayate-openapi/actions/runs/30487122341) at `2ed34215ec3dd5ebd0a0780f7b7903f0b3492a78` - [hayate-openapi 0.8.1 release provenance](https://github.com/hayatepy/hayate-openapi/actions/runs/30487193584) at `2ed34215ec3dd5ebd0a0780f7b7903f0b3492a78` - 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.13.1 main CI (52/52 backend compositions)](https://github.com/hayatepy/create-hayate/actions/runs/30493342848) at `97d19b59e1256ec6d50e9ecb725296442fda4b20` -- [create-hayate 0.13.1 frontend matrix (112/112)](https://github.com/hayatepy/create-hayate/actions/runs/30493092512) at `c19d726656ed0b7a88634c761426698501e241a6`; aggregate evidence SHA-256 `f7be85bf13c135c9c112c3cb504c337f3e0fbad501fe575425ad69be898a84df` -- [create-hayate 0.13.1 release provenance](https://github.com/hayatepy/create-hayate/actions/runs/30493486890) at `97d19b59e1256ec6d50e9ecb725296442fda4b20` +- [Hayate 0.15.2 downstream full compatibility CI](https://github.com/hayatepy/hayate/actions/runs/30501023744) at `64dfb96f2397685c9fe017382855749f445d3697` +- [Hayate 0.15.2 main CI](https://github.com/hayatepy/hayate/actions/runs/30501131371) at `8cb27385cbc2655e531c37bdcdb45b1309c3a392` +- [Hayate 0.15.2 release provenance](https://github.com/hayatepy/hayate/actions/runs/30501262533) at `8cb27385cbc2655e531c37bdcdb45b1309c3a392` +- [create-hayate 0.13.2 main CI and feature matrix](https://github.com/hayatepy/create-hayate/actions/runs/30502494267) at `8bcca24bbd43854c05a6467d26b675c20a89b63e` +- [create-hayate 0.13.2 frontend smoke matrix (10/10)](https://github.com/hayatepy/create-hayate/actions/runs/30502309672) at `2e3d091b903d7a649ab5f03f4fbf058f4e27d0fa`; aggregate evidence SHA-256 `f207dcd979c695508c4bf672432848e5469ebf4ab1b58b0f2c4fecb8e004af05` +- [create-hayate 0.13.2 release provenance](https://github.com/hayatepy/create-hayate/actions/runs/30502570222) at `8bcca24bbd43854c05a6467d26b675c20a89b63e` Machine-readable data: [`compatibility.json`](../compatibility.json). diff --git a/docs/START.md b/docs/START.md index 26c0b6f..d0a1a82 100644 --- a/docs/START.md +++ b/docs/START.md @@ -5,10 +5,12 @@ core for ASGI/SQLite and Cloudflare Workers/D1, plus OpenAPI 3.1.1, MCP 2026-07-28, Cloudflare Access integration, checked SQL, and production middleware. +Rendered guide: + Install [uv](https://docs.astral.sh/uv/), then run: ```sh -uvx --refresh --from create-hayate==0.13.1 create-hayate my-app --template workers --preset production +uvx --refresh --from create-hayate==0.13.2 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 b39c249..022c1c9 100644 --- a/evidence/golden-app-compatibility.json +++ b/evidence/golden-app-compatibility.json @@ -1,6 +1,6 @@ { - "generated_by": "create-hayate 0.13.1", - "lock_sha256": "400de843b728b759aafc6fa55f1a810021f4c08837dbc6677e33db1313b2bcd8", + "generated_by": "create-hayate 0.13.2", + "lock_sha256": "82fa8313483ca0412ba389e5ca610f47ea943a153c8ca5210cb881981d9a129e", "mcp_revision": "2026-07-28", "node": "24", "packages": [ @@ -9,14 +9,14 @@ "package": "create-hayate", "role": "Scaffold source", "source": "golden-app.toml", - "version": "0.13.1" + "version": "0.13.2" }, { "commit": null, "package": "hayate", "role": "Application core and runtime adapters", "source": "uv.lock", - "version": "0.15.1" + "version": "0.15.2" }, { "commit": null, @@ -30,7 +30,7 @@ "package": "hayate-mcp", "role": "MCP transport and tools runtime", "source": "uv.lock", - "version": "0.12.0" + "version": "0.12.1" }, { "commit": null, diff --git a/llms.txt b/llms.txt index dcc9a92..6c51e5c 100644 --- a/llms.txt +++ b/llms.txt @@ -4,21 +4,21 @@ > across ASGI, Cloudflare Workers, and AWS Lambda. Canonical start: -https://github.com/hayatepy/.github/blob/main/docs/START.md +https://hayatepy.dev/get-started/first-app/ Production reference: https://github.com/hayatepy/golden-app Generated compatibility: -https://github.com/hayatepy/.github/blob/main/docs/COMPATIBILITY.md +https://hayatepy.dev/evidence/compatibility/ https://raw.githubusercontent.com/hayatepy/.github/main/compatibility.json Competitive evidence: -https://github.com/hayatepy/hayate/blob/main/docs/benchmarks.md -https://github.com/hayatepy/hayate/blob/main/docs/capabilities.md +https://hayatepy.dev/evidence/benchmarks/ +https://github.com/hayatepy/hayate/blob/5592276315c9b75e736d3fc204b4900e15f8867a/docs/capabilities.md Core documentation: -https://hayatepy.github.io/hayate/ +https://hayatepy.dev/ Packages: - hayate: framework and runtime adapters diff --git a/profile/README.md b/profile/README.md index 0d25140..b71a653 100644 --- a/profile/README.md +++ b/profile/README.md @@ -28,12 +28,12 @@ logic on a conventional Python server or directly inside Cloudflare workerd. 3. Use the [executable production golden app](https://github.com/hayatepy/golden-app) for Cloudflare Access, OpenAPI, MCP, checked SQL, operational administration, SQLite/D1, and deployment. -4. Check the [generated compatibility evidence](https://github.com/hayatepy/.github/blob/main/docs/COMPATIBILITY.md) +4. Check the [generated compatibility evidence](https://hayatepy.dev/evidence/compatibility/) before selecting versions or runtimes. Building a real API, MCP backend, or Workers application? Help shape the v1 contract through the bounded -[design-partner program](https://github.com/hayatepy/.github/blob/main/docs/DESIGN_PARTNERS.md). +[design-partner program](https://hayatepy.dev/contribute/#design-partners). ## Why Hayate diff --git a/profile/README.md.in b/profile/README.md.in index 431e614..738d0d5 100644 --- a/profile/README.md.in +++ b/profile/README.md.in @@ -26,12 +26,12 @@ logic on a conventional Python server or directly inside Cloudflare workerd. 3. Use the [executable production golden app](https://github.com/hayatepy/golden-app) for Cloudflare Access, OpenAPI, MCP, checked SQL, operational administration, SQLite/D1, and deployment. -4. Check the [generated compatibility evidence](https://github.com/hayatepy/.github/blob/main/docs/COMPATIBILITY.md) +4. Check the [generated compatibility evidence](https://hayatepy.dev/evidence/compatibility/) before selecting versions or runtimes. Building a real API, MCP backend, or Workers application? Help shape the v1 contract through the bounded -[design-partner program](https://github.com/hayatepy/.github/blob/main/docs/DESIGN_PARTNERS.md). +[design-partner program](https://hayatepy.dev/contribute/#design-partners). ## Why Hayate diff --git a/tests/test_public_links.py b/tests/test_public_links.py new file mode 100644 index 0000000..ebde96d --- /dev/null +++ b/tests/test_public_links.py @@ -0,0 +1,44 @@ +from __future__ import annotations + +import unittest +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +CANONICAL_HOME = "https://hayatepy.dev/" +CANONICAL_FIRST_APP = "https://hayatepy.dev/get-started/first-app/" +CANONICAL_COMPATIBILITY = "https://hayatepy.dev/evidence/compatibility/" +CANONICAL_DESIGN_PARTNERS = "https://hayatepy.dev/contribute/#design-partners" +SUPERSEDED_DOCS_PREFIX = "https://hayatepy.github.io/" + + +class PublicLinksTest(unittest.TestCase): + def test_profile_routes_public_discovery_through_hayatepy_dev(self) -> None: + for relative_path in ("profile/README.md.in", "profile/README.md"): + text = (ROOT / relative_path).read_text(encoding="utf-8") + + self.assertIn(CANONICAL_HOME, text) + self.assertIn(CANONICAL_FIRST_APP, text) + self.assertIn(CANONICAL_COMPATIBILITY, text) + self.assertIn(CANONICAL_DESIGN_PARTNERS, text) + self.assertNotIn(SUPERSEDED_DOCS_PREFIX, text) + + def test_llms_routes_human_documentation_through_hayatepy_dev(self) -> None: + text = (ROOT / "llms.txt").read_text(encoding="utf-8") + + self.assertIn(CANONICAL_HOME, text) + self.assertIn(CANONICAL_FIRST_APP, text) + self.assertIn(CANONICAL_COMPATIBILITY, text) + self.assertNotIn(SUPERSEDED_DOCS_PREFIX, text) + + def test_start_uses_the_current_scaffold_release(self) -> None: + text = (ROOT / "docs" / "START.md").read_text(encoding="utf-8") + + self.assertIn("create-hayate==0.13.2", text) + self.assertNotIn("create-hayate==0.13.1", text) + + def test_design_partner_form_uses_the_public_program_page(self) -> None: + text = ( + ROOT / ".github" / "ISSUE_TEMPLATE" / "design_partner.yml" + ).read_text(encoding="utf-8") + + self.assertIn(CANONICAL_DESIGN_PARTNERS, text)