diff --git a/compatibility.json b/compatibility.json index f1b68d3..0fb802c 100644 --- a/compatibility.json +++ b/compatibility.json @@ -110,8 +110,8 @@ ], "golden": true, "name": "create-hayate", - "role": "Composable applications with drift-checked first-party TypeScript clients", - "version": "0.13.2" + "role": "Composable applications with deployment-identifiable Workers and drift-checked first-party TypeScript clients", + "version": "0.14.0" } ], "protocols": { @@ -210,9 +210,9 @@ "visibility": "private" }, "golden_app": { - "commit": "381c071f108e29b16eae6b19b7f870a4fc3f18a9", - "label": "golden-app release lock main CI", - "url": "https://github.com/hayatepy/golden-app/actions/runs/30507749113" + "commit": "f0e334554f4b98e4be941dcb84feaaf6b47a9c89", + "label": "golden-app create-hayate 0.14.0 deployment metadata main CI", + "url": "https://github.com/hayatepy/golden-app/actions/runs/30511141307" }, "mcp_ci": { "commit": "249b2df4bc41a0603e168b22c53815e31d2d5711", @@ -235,20 +235,20 @@ "url": "https://github.com/hayatepy/hayate-openapi/actions/runs/30506784156" }, "scaffold_ci": { - "commit": "884b2b82dd9c64026d00deecd6afac3200a9baa5", - "label": "create-hayate 0.13.2 main CI and feature matrix", - "url": "https://github.com/hayatepy/create-hayate/actions/runs/30506646209" + "commit": "261af98f18b1f97cbb94f7bf19a99ab34e92be4f", + "label": "create-hayate 0.14.0 main CI and feature matrix", + "url": "https://github.com/hayatepy/create-hayate/actions/runs/30510345493" }, "scaffold_matrix": { - "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" + "artifact_sha256": "d980477da29e494182080adcd79b864ab533a1dcfbc8035b401f75f7dfa97e43", + "commit": "261af98f18b1f97cbb94f7bf19a99ab34e92be4f", + "label": "create-hayate 0.14.0 full frontend matrix (112/112)", + "url": "https://github.com/hayatepy/create-hayate/actions/runs/30511183502" }, "scaffold_release": { - "commit": "8bcca24bbd43854c05a6467d26b675c20a89b63e", - "label": "create-hayate 0.13.2 release provenance", - "url": "https://github.com/hayatepy/create-hayate/actions/runs/30502570222" + "commit": "261af98f18b1f97cbb94f7bf19a99ab34e92be4f", + "label": "create-hayate 0.14.0 release provenance", + "url": "https://github.com/hayatepy/create-hayate/actions/runs/30510444651" }, "sql_ci": { "commit": "4e84db1ab3a7683239f288fb1bae64afa3007303", diff --git a/data/ecosystem.toml b/data/ecosystem.toml index d92eba3..79c9026 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 release lock main CI" -url = "https://github.com/hayatepy/golden-app/actions/runs/30507749113" -commit = "381c071f108e29b16eae6b19b7f870a4fc3f18a9" +label = "golden-app create-hayate 0.14.0 deployment metadata main CI" +url = "https://github.com/hayatepy/golden-app/actions/runs/30511141307" +commit = "f0e334554f4b98e4be941dcb84feaaf6b47a9c89" [sources.auth_ci] label = "hayate-auth 0.10.5 main CI" @@ -93,20 +93,20 @@ url = "https://github.com/hayatepy/hayate/actions/runs/30506830778" commit = "a1821a27a83a2406c491338a397b489856db15de" [sources.scaffold_ci] -label = "create-hayate 0.13.2 main CI and feature matrix" -url = "https://github.com/hayatepy/create-hayate/actions/runs/30506646209" -commit = "884b2b82dd9c64026d00deecd6afac3200a9baa5" +label = "create-hayate 0.14.0 main CI and feature matrix" +url = "https://github.com/hayatepy/create-hayate/actions/runs/30510345493" +commit = "261af98f18b1f97cbb94f7bf19a99ab34e92be4f" [sources.scaffold_matrix] -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" +label = "create-hayate 0.14.0 full frontend matrix (112/112)" +url = "https://github.com/hayatepy/create-hayate/actions/runs/30511183502" +commit = "261af98f18b1f97cbb94f7bf19a99ab34e92be4f" +artifact_sha256 = "d980477da29e494182080adcd79b864ab533a1dcfbc8035b401f75f7dfa97e43" [sources.scaffold_release] -label = "create-hayate 0.13.2 release provenance" -url = "https://github.com/hayatepy/create-hayate/actions/runs/30502570222" -commit = "8bcca24bbd43854c05a6467d26b675c20a89b63e" +label = "create-hayate 0.14.0 release provenance" +url = "https://github.com/hayatepy/create-hayate/actions/runs/30510444651" +commit = "261af98f18b1f97cbb94f7bf19a99ab34e92be4f" [[packages]] name = "hayate" @@ -152,8 +152,8 @@ evidence = ["golden_app", "sql_ci", "sql_release", "foliomcp_ci"] [[packages]] name = "create-hayate" -version = "0.13.2" -role = "Composable applications with drift-checked first-party TypeScript clients" +version = "0.14.0" +role = "Composable applications with deployment-identifiable Workers and 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 726b25a..e1dd0c9 100644 --- a/docs/COMPATIBILITY.md +++ b/docs/COMPATIBILITY.md @@ -8,22 +8,22 @@ 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.3` | Core framework and native ASGI, Workers, and Lambda adapters | yes | [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30507749113), [Hayate 0.15.2 downstream full compatibility CI (runtime-equivalent to metadata-only 0.15.3)](https://github.com/hayatepy/hayate/actions/runs/30501023744), [Hayate 0.15.3 main CI](https://github.com/hayatepy/hayate/actions/runs/30506644119), [Hayate 0.15.3 release provenance](https://github.com/hayatepy/hayate/actions/runs/30506830778) | +| [`hayate`](https://github.com/hayatepy/hayate) | `0.15.3` | Core framework and native ASGI, Workers, and Lambda adapters | yes | [golden-app create-hayate 0.14.0 deployment metadata main CI](https://github.com/hayatepy/golden-app/actions/runs/30511141307), [Hayate 0.15.2 downstream full compatibility CI (runtime-equivalent to metadata-only 0.15.3)](https://github.com/hayatepy/hayate/actions/runs/30501023744), [Hayate 0.15.3 main CI](https://github.com/hayatepy/hayate/actions/runs/30506644119), [Hayate 0.15.3 release provenance](https://github.com/hayatepy/hayate/actions/runs/30506830778) | | [`hayate-auth`](https://github.com/hayatepy/hayate-auth) | `0.10.5` | Sessions, API keys, OAuth clients, and authorization server | downstream gate | [hayate-auth 0.10.5 main CI](https://github.com/hayatepy/hayate-auth/actions/runs/30506737850), [hayate-auth 0.10.5 security profiles](https://github.com/hayatepy/hayate-auth/actions/runs/30506737869), [hayate-auth 0.10.5 release provenance](https://github.com/hayatepy/hayate-auth/actions/runs/30506830212) | | [`hayate-fetch`](https://github.com/hayatepy/hayate-fetch) | `0.1.4` | Portable WHATWG-style outbound fetch | downstream gate | [hayate-fetch 0.1.4 main CI](https://github.com/hayatepy/hayate-fetch/actions/runs/30506644434), [hayate-fetch 0.1.4 release provenance](https://github.com/hayatepy/hayate-fetch/actions/runs/30506781911), [Hayate 0.15.2 downstream full compatibility CI (runtime-equivalent to metadata-only 0.15.3)](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/30507749113), [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.2` | 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/30507749113), [hayate-openapi 0.8.2 main CI and TypeScript interoperability](https://github.com/hayatepy/hayate-openapi/actions/runs/30506643960), [hayate-openapi 0.8.2 release provenance](https://github.com/hayatepy/hayate-openapi/actions/runs/30506784156), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | -| [`hayate-sql`](https://github.com/hayatepy/hayate-sql) | `0.1.2` | Migration-checked SQL contracts and typed query facades | yes | [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30507749113), [hayate-sql 0.1.2 main CI](https://github.com/hayatepy/hayate-sql/actions/runs/30506643955), [hayate-sql 0.1.2 release provenance](https://github.com/hayatepy/hayate-sql/actions/runs/30506782424), 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/30507749113), [create-hayate 0.13.2 main CI and feature matrix](https://github.com/hayatepy/create-hayate/actions/runs/30506646209), [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) | +| [`hayate-mcp`](https://github.com/hayatepy/hayate-mcp) | `0.12.1` | MCP transport, tools, context, and OAuth resource server | yes | [golden-app create-hayate 0.14.0 deployment metadata main CI](https://github.com/hayatepy/golden-app/actions/runs/30511141307), [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.2` | OpenAPI 3.1, Scalar, and generated zero-runtime TypeScript clients | yes | [golden-app create-hayate 0.14.0 deployment metadata main CI](https://github.com/hayatepy/golden-app/actions/runs/30511141307), [hayate-openapi 0.8.2 main CI and TypeScript interoperability](https://github.com/hayatepy/hayate-openapi/actions/runs/30506643960), [hayate-openapi 0.8.2 release provenance](https://github.com/hayatepy/hayate-openapi/actions/runs/30506784156), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | +| [`hayate-sql`](https://github.com/hayatepy/hayate-sql) | `0.1.2` | Migration-checked SQL contracts and typed query facades | yes | [golden-app create-hayate 0.14.0 deployment metadata main CI](https://github.com/hayatepy/golden-app/actions/runs/30511141307), [hayate-sql 0.1.2 main CI](https://github.com/hayatepy/hayate-sql/actions/runs/30506643955), [hayate-sql 0.1.2 release provenance](https://github.com/hayatepy/hayate-sql/actions/runs/30506782424), FolioMCP production Workerd CI (private downstream evidence) at `a4d110efc223` | +| [`create-hayate`](https://github.com/hayatepy/create-hayate) | `0.14.0` | Composable applications with deployment-identifiable Workers and drift-checked first-party TypeScript clients | yes | [golden-app create-hayate 0.14.0 deployment metadata main CI](https://github.com/hayatepy/golden-app/actions/runs/30511141307), [create-hayate 0.14.0 main CI and feature matrix](https://github.com/hayatepy/create-hayate/actions/runs/30510345493), [create-hayate 0.14.0 full frontend matrix (112/112)](https://github.com/hayatepy/create-hayate/actions/runs/30511183502), [create-hayate 0.14.0 release provenance](https://github.com/hayatepy/create-hayate/actions/runs/30510444651) | ## Runtime contracts | Runtime | Executed or supported contract | Status | Evidence | |---|---|---|---| -| Direct | Pure application requests with local SQLite | Golden path | [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30507749113) | -| ASGI | Real Uvicorn process with SQLite | Golden path | [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30507749113) | -| 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/30507749113), [Hayate 0.15.2 downstream full compatibility CI (runtime-equivalent to metadata-only 0.15.3)](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/30507749113) | +| Direct | Pure application requests with local SQLite | Golden path | [golden-app create-hayate 0.14.0 deployment metadata main CI](https://github.com/hayatepy/golden-app/actions/runs/30511141307) | +| ASGI | Real Uvicorn process with SQLite | Golden path | [golden-app create-hayate 0.14.0 deployment metadata main CI](https://github.com/hayatepy/golden-app/actions/runs/30511141307) | +| Cloudflare Workers class | Real workerd, D1, RPC-capable WorkerEntrypoint, and class handlers | Golden default | [golden-app create-hayate 0.14.0 deployment metadata main CI](https://github.com/hayatepy/golden-app/actions/runs/30511141307), [Hayate 0.15.2 downstream full compatibility CI (runtime-equivalent to metadata-only 0.15.3)](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 create-hayate 0.14.0 deployment metadata main CI](https://github.com/hayatepy/golden-app/actions/runs/30511141307) | | AWS Lambda | API Gateway v2 and Function URL buffering plus native response streaming | Core native adapters; outside the golden production flow | [Hayate 0.15.3 main CI](https://github.com/hayatepy/hayate/actions/runs/30506644119) | ASGI is a deployment adapter, not a Cloudflare requirement. The Workers class @@ -53,7 +53,7 @@ Golden lock SHA-256: `4502453286edffcee72b1025f7e2f1c81c596cd4bf6734b9c8c52cd462 ## Evidence sources -- [golden-app release lock main CI](https://github.com/hayatepy/golden-app/actions/runs/30507749113) at `381c071f108e29b16eae6b19b7f870a4fc3f18a9` +- [golden-app create-hayate 0.14.0 deployment metadata main CI](https://github.com/hayatepy/golden-app/actions/runs/30511141307) at `f0e334554f4b98e4be941dcb84feaaf6b47a9c89` - [hayate-auth 0.10.5 main CI](https://github.com/hayatepy/hayate-auth/actions/runs/30506737850) at `4189e735844a06377e9aa7eea2a731d09e500449` - [hayate-auth 0.10.5 security profiles](https://github.com/hayatepy/hayate-auth/actions/runs/30506737869) at `4189e735844a06377e9aa7eea2a731d09e500449` - [hayate-auth 0.10.5 release provenance](https://github.com/hayatepy/hayate-auth/actions/runs/30506830212) at `4189e735844a06377e9aa7eea2a731d09e500449` @@ -69,8 +69,8 @@ Golden lock SHA-256: `4502453286edffcee72b1025f7e2f1c81c596cd4bf6734b9c8c52cd462 - [Hayate 0.15.2 downstream full compatibility CI (runtime-equivalent to metadata-only 0.15.3)](https://github.com/hayatepy/hayate/actions/runs/30501023744) at `64dfb96f2397685c9fe017382855749f445d3697` - [Hayate 0.15.3 main CI](https://github.com/hayatepy/hayate/actions/runs/30506644119) at `a1821a27a83a2406c491338a397b489856db15de` - [Hayate 0.15.3 release provenance](https://github.com/hayatepy/hayate/actions/runs/30506830778) at `a1821a27a83a2406c491338a397b489856db15de` -- [create-hayate 0.13.2 main CI and feature matrix](https://github.com/hayatepy/create-hayate/actions/runs/30506646209) at `884b2b82dd9c64026d00deecd6afac3200a9baa5` -- [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` +- [create-hayate 0.14.0 main CI and feature matrix](https://github.com/hayatepy/create-hayate/actions/runs/30510345493) at `261af98f18b1f97cbb94f7bf19a99ab34e92be4f` +- [create-hayate 0.14.0 full frontend matrix (112/112)](https://github.com/hayatepy/create-hayate/actions/runs/30511183502) at `261af98f18b1f97cbb94f7bf19a99ab34e92be4f`; aggregate evidence SHA-256 `d980477da29e494182080adcd79b864ab533a1dcfbc8035b401f75f7dfa97e43` +- [create-hayate 0.14.0 release provenance](https://github.com/hayatepy/create-hayate/actions/runs/30510444651) at `261af98f18b1f97cbb94f7bf19a99ab34e92be4f` Machine-readable data: [`compatibility.json`](../compatibility.json). diff --git a/docs/START.md b/docs/START.md index d0a1a82..7cdbade 100644 --- a/docs/START.md +++ b/docs/START.md @@ -10,7 +10,7 @@ Rendered guide: Install [uv](https://docs.astral.sh/uv/), then run: ```sh -uvx --refresh --from create-hayate==0.13.2 create-hayate my-app --template workers --preset production +uvx --refresh --from create-hayate==0.14.0 create-hayate my-app --template workers --preset production cd my-app uv sync test -f uv.lock @@ -32,6 +32,9 @@ local-only, ignored development identity configuration. storage. - Cloudflare workerd supplies the Workers adapter and a D1 binding. ASGI is not required on Cloudflare. +- Generated Workers expose bounded `X-App-Version` and platform-issued + `X-Worker-Version` response headers so rollouts and incidents can be tied to + an exact semantic application release and Worker deployment. - HTTP and MCP receive the same request identity and call the same checked storage layer. - The default Workers export is the feature-complete `WorkerEntrypoint` class, diff --git a/evidence/golden-app-compatibility.json b/evidence/golden-app-compatibility.json index 401fe6a..2f8776b 100644 --- a/evidence/golden-app-compatibility.json +++ b/evidence/golden-app-compatibility.json @@ -1,5 +1,5 @@ { - "generated_by": "create-hayate 0.13.2", + "generated_by": "create-hayate 0.14.0", "lock_sha256": "4502453286edffcee72b1025f7e2f1c81c596cd4bf6734b9c8c52cd4622b6b61", "mcp_revision": "2026-07-28", "node": "24", @@ -9,7 +9,7 @@ "package": "create-hayate", "role": "Scaffold source", "source": "golden-app.toml", - "version": "0.13.2" + "version": "0.14.0" }, { "commit": null, diff --git a/tests/test_public_links.py b/tests/test_public_links.py index ebde96d..d86077b 100644 --- a/tests/test_public_links.py +++ b/tests/test_public_links.py @@ -33,8 +33,8 @@ def test_llms_routes_human_documentation_through_hayatepy_dev(self) -> None: 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) + self.assertIn("create-hayate==0.14.0", text) + self.assertNotIn("create-hayate==0.13.2", text) def test_design_partner_form_uses_the_public_program_page(self) -> None: text = (