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
14 changes: 7 additions & 7 deletions data/ecosystem.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
schema_version = 1
as_of = "2026-07-30"
source_repository = "hayatepy/.github"
source_commit = "c9c19d02e15c3030be2e6eed9d8ab3c8cc6c9226"
compatibility_url = "https://github.com/hayatepy/.github/blob/c9c19d02e15c3030be2e6eed9d8ab3c8cc6c9226/docs/COMPATIBILITY.md"
source_commit = "74327adddc10cad0f3f802a4bfd29ef484572907"
compatibility_url = "https://github.com/hayatepy/.github/blob/74327adddc10cad0f3f802a4bfd29ef484572907/docs/COMPATIBILITY.md"

[[packages]]
name = "hayate"
Expand All @@ -16,13 +16,13 @@ source_commit = "a1821a27a83a2406c491338a397b489856db15de"

[[packages]]
name = "create-hayate"
version = "0.13.2"
version = "0.14.0"
status = "Published alpha"
role = "Composable applications with drift-checked first-party TypeScript clients"
use_when = "Start with a tested API, Workers, MCP, auth, SQL, admin, or frontend composition and keep its generated client in sync."
role = "Composable applications with deployment identity and drift-checked TypeScript clients"
use_when = "Start with a tested API, Workers, MCP, auth, SQL, admin, or frontend composition; identify each rollout and keep its generated client in sync."
repository = "https://github.com/hayatepy/create-hayate"
pypi = "https://pypi.org/project/create-hayate/"
source_commit = "8bcca24bbd43854c05a6467d26b675c20a89b63e"
source_commit = "261af98f18b1f97cbb94f7bf19a99ab34e92be4f"

[[packages]]
name = "hayate-auth"
Expand Down Expand Up @@ -99,4 +99,4 @@ status = "Reference application"
role = "Executable production integration"
use_when = "Review tested trust boundaries and deployment choices before shipping."
repository = "https://github.com/hayatepy/golden-app"
source_commit = "381c071f108e29b16eae6b19b7f870a4fc3f18a9"
source_commit = "f0e334554f4b98e4be941dcb84feaaf6b47a9c89"
4 changes: 2 additions & 2 deletions docs/ecosystem/compose.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ has no runtime npm dependency. Path, query, header, cookie, JSON,
URL-encoded, and multipart inputs stay tied to the published schema.

The [golden application executes the compiled client against a real ASGI
process](https://github.com/hayatepy/golden-app/blob/842fd2486f3d8bd5c284e44e4f8528b0441a574a/client/check-api-client.ts)
process](https://github.com/hayatepy/golden-app/blob/f0e334554f4b98e4be941dcb84feaaf6b47a9c89/client/check-api-client.ts)
instead of treating generation or type-checking alone as interoperability.

## Server-rendered application
Expand All @@ -62,7 +62,7 @@ customer workflows.
them:

```sh
uvx --from create-hayate==0.13.2 create-hayate --help
uvx --from create-hayate==0.14.0 create-hayate --help
```

Use the [family map](index.md) for current release state and package links.
12 changes: 6 additions & 6 deletions docs/ecosystem/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@

Choose packages by the boundary your application needs. The core stays small; capabilities are explicit packages with their own release and evidence.

This snapshot is dated **2026-07-30** and is pinned to [`hayatepy/.github` at `c9c19d02e15c`](https://github.com/hayatepy/.github/tree/c9c19d02e15c3030be2e6eed9d8ab3c8cc6c9226). Every package is pre-1.0; check the compatibility snapshot before combining versions.
This snapshot is dated **2026-07-30** and is pinned to [`hayatepy/.github` at `74327adddc10`](https://github.com/hayatepy/.github/tree/74327adddc10cad0f3f802a4bfd29ef484572907). Every package is pre-1.0; check the compatibility snapshot before combining versions.

| Project | Version | Responsibility | Release state |
|---|---:|---|---|
| [`hayate`](https://github.com/hayatepy/hayate) | [`0.15.3`](https://pypi.org/project/hayate/) | Core framework and native ASGI, Workers, and Lambda adapters | Published alpha |
| [`create-hayate`](https://github.com/hayatepy/create-hayate) | [`0.13.2`](https://pypi.org/project/create-hayate/) | Composable applications with drift-checked first-party TypeScript clients | Published alpha |
| [`create-hayate`](https://github.com/hayatepy/create-hayate) | [`0.14.0`](https://pypi.org/project/create-hayate/) | Composable applications with deployment identity and drift-checked TypeScript clients | Published alpha |
| [`hayate-auth`](https://github.com/hayatepy/hayate-auth) | [`0.10.5`](https://pypi.org/project/hayate-auth/) | Sessions, API keys, OAuth, passkeys, and authorization server | Published alpha; independent audit pending |
| [`hayate-mcp`](https://github.com/hayatepy/hayate-mcp) | [`0.12.1`](https://pypi.org/project/hayate-mcp/) | MCP 2026-07-28 Streamable HTTP and discovery | Published alpha |
| [`hayate-openapi`](https://github.com/hayatepy/hayate-openapi) | [`0.8.2`](https://pypi.org/project/hayate-openapi/) | OpenAPI 3.1, Scalar, and generated zero-runtime TypeScript clients | Published alpha |
Expand All @@ -19,7 +19,7 @@ This snapshot is dated **2026-07-30** and is pinned to [`hayatepy/.github` at `c
| [`hayate-htmx`](https://github.com/hayatepy/hayate-htmx) | `0.2.0` | Hypermedia, Jinja, htmx, fragments, and SSE | Pre-release source |
| [`golden-app`](https://github.com/hayatepy/golden-app) | `0.1.0` | Executable production integration | Reference application |

[Open the tested compatibility snapshot](https://github.com/hayatepy/.github/blob/c9c19d02e15c3030be2e6eed9d8ab3c8cc6c9226/docs/COMPATIBILITY.md)
[Open the tested compatibility snapshot](https://github.com/hayatepy/.github/blob/74327adddc10cad0f3f802a4bfd29ef484572907/docs/COMPATIBILITY.md)

## hayate

Expand All @@ -31,9 +31,9 @@ Build one Fetch-style Python application for ASGI, Workers, or Lambda.

## create-hayate

Start with a tested API, Workers, MCP, auth, SQL, admin, or frontend composition and keep its generated client in sync.
Start with a tested API, Workers, MCP, auth, SQL, admin, or frontend composition; identify each rollout and keep its generated client in sync.

**Current evidence:** Published alpha, version `0.13.2` · [source at `8bcca24bbd43`](https://github.com/hayatepy/create-hayate/tree/8bcca24bbd43854c05a6467d26b675c20a89b63e)
**Current evidence:** Published alpha, version `0.14.0` · [source at `261af98f18b1`](https://github.com/hayatepy/create-hayate/tree/261af98f18b1f97cbb94f7bf19a99ab34e92be4f)

[Repository](https://github.com/hayatepy/create-hayate) · [PyPI](https://pypi.org/project/create-hayate/)

Expand Down Expand Up @@ -97,6 +97,6 @@ Build progressively enhanced server-rendered applications without a JavaScript S

Review tested trust boundaries and deployment choices before shipping.

**Current evidence:** Reference application, version `0.1.0` · [source at `381c071f108e`](https://github.com/hayatepy/golden-app/tree/381c071f108e29b16eae6b19b7f870a4fc3f18a9)
**Current evidence:** Reference application, version `0.1.0` · [source at `f0e334554f4b`](https://github.com/hayatepy/golden-app/tree/f0e334554f4b98e4be941dcb84feaaf6b47a9c89)

[Repository](https://github.com/hayatepy/golden-app)
24 changes: 15 additions & 9 deletions docs/evidence/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The current public snapshot is dated **2026-07-30**. All packages remain
pre-1.0, so compatible versions must be selected from evidence rather than
assumed from package names.

[Open the immutable compatibility snapshot](https://github.com/hayatepy/.github/blob/c9c19d02e15c3030be2e6eed9d8ab3c8cc6c9226/docs/COMPATIBILITY.md){ .md-button .md-button--primary }
[Open the immutable compatibility snapshot](https://github.com/hayatepy/.github/blob/74327adddc10cad0f3f802a4bfd29ef484572907/docs/COMPATIBILITY.md){ .md-button .md-button--primary }

## Golden runtime lock

Expand All @@ -23,26 +23,32 @@ assumed from package names.

- `hayate-openapi 0.8.2` generates the dependency-free callable TypeScript
client and validates it against a real Hayate ASGI process.
- `create-hayate 0.13.2` propagates the client, its types, and drift checks
into generated projects.
- `create-hayate 0.14.0` propagates the client, its types, and drift checks
into generated projects. Its production Workers template also propagates
application and Cloudflare deployment identity to every response.
- `hayate-mcp 0.12.1` passes the official 70-case MCP 2026-07-28
conformance suite, real Workerd execution, and release provenance checks.
- `hayate 0.15.3`, `hayate-sql 0.1.2`, `hayate-fetch 0.1.4`, and
`hayate-auth 0.10.5` publish immutable wheels with SLSA provenance and SPDX
SBOMs.
- Its [release workflow](https://github.com/hayatepy/create-hayate/actions/runs/30502570222)
- Its [release workflow](https://github.com/hayatepy/create-hayate/actions/runs/30510444651)
resolved and imported all 52 supported backend compositions before publishing
the signed, attested wheel.
- The `0.13.2` wheel also passed the current
[10-case frontend smoke](https://github.com/hayatepy/create-hayate/actions/runs/30502309672)
across htmx renderers, React, Astro, ASGI, and real Workerd. The aggregate
- The `0.14.0` public wheel also passed the full
[112-case composition matrix](https://github.com/hayatepy/create-hayate/actions/runs/30511183502)
across backend and frontend combinations, ASGI, and real Workerd. No expected
case was missing or failed. The aggregate
evidence JSON SHA-256 is
`f207dcd979c695508c4bf672432848e5469ebf4ab1b58b0f2c4fecb8e004af05`.
`d980477da29e494182080adcd79b864ab533a1dcfbc8035b401f75f7dfa97e43`.
- The [golden application main
run](https://github.com/hayatepy/golden-app/actions/runs/30507749113)
run](https://github.com/hayatepy/golden-app/actions/runs/30511141307)
executes authenticated path, query, JSON, multipart, delete, and error
flows through the compiled client and locks `hayate 0.15.3`,
`hayate-mcp 0.12.1`, `hayate-openapi 0.8.2`, and `hayate-sql 0.1.2`.
- The same run proves both class and global Workers entrypoints under real
Workerd. Each returns `X-Hayate-App-Version: 0.1.0` and a platform-issued
`X-Hayate-Worker-Version` UUID. The ASGI smoke returns the app version and
deliberately omits the Worker-only identifier.

The generated [family map](../ecosystem/index.md) pins each listed project to
the source commit used for this site snapshot.
8 changes: 7 additions & 1 deletion docs/get-started/first-app.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Cloudflare Access, checked SQL, request correlation, and production middleware.
Install [uv](https://docs.astral.sh/uv/), then run:

```sh
uvx --refresh --from create-hayate==0.13.2 \
uvx --refresh --from create-hayate==0.14.0 \
create-hayate my-app --template workers --preset production
cd my-app
```
Expand Down Expand Up @@ -47,6 +47,12 @@ credentials.
runtime package dependency.
- The default Workers export is a `WorkerEntrypoint` class, preserving named
RPC and class handlers such as `scheduled`.
- Every response identifies the application release with `X-Hayate-App-Version`.
Native Workers responses also expose Cloudflare's immutable deployment UUID
as `X-Hayate-Worker-Version`; local ASGI responses intentionally omit it.
- Protected production requests fail closed when either required deployment
identity is absent. CORS exposes both identifiers only to the configured
exact origin.

ASGI is not involved in the native Workers path.

Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,6 @@ description: One Fetch-style Python application across ASGI, Cloudflare Workers,
<section class="hayate-final">
<p class="hayate-kicker">START FROM A TESTED COMPOSITION</p>
<h2>From empty directory to passing production checks.</h2>
<p><code>uvx --from create-hayate==0.13.2 create-hayate my-app --template workers --preset production</code></p>
<p><code>uvx --from create-hayate==0.14.0 create-hayate my-app --template workers --preset production</code></p>
<a class="md-button md-button--primary" href="get-started/first-app/">Follow the verified path</a>
</section>
Loading