You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit ffc3b74
Browse filesBrowse the repository at this point in the historyBrowse files
Mark Pollack
committed
Framework smoke matrix: nightly and push workflow, release gate
framework-smoke.yml runs every fw-* and load-10-fw-* scenario on JDK 17
on each push to main, nightly, and on dispatch for any branch. The
integration-testing README documents the matrix and the release gate:
a candidate needs it green on the release commit. release.yml is
unchanged.
|`quarkus-typescript-http`, `quarkus-typescript-ws`| hand-written: the TypeScript client program against the Quarkus-hosted smoke agent (`programs/quarkus`: the shared `programs/framework` handlers as an `@AcpAgent` bean served by `acp-quarkus` on the Quarkus HTTP server), running the catalogue steps that agent implements (initialize, sessions, echo chunks, stop reasons, -32601, 1 MB and 8 MB prompts and updates). Run in the `typescript-http`/`typescript-ws` legs of `cross-sdk.yml`|
106
111
|`load-50`, `load-300`, `load-1000`| N Java clients on their own connections, each: initialize, session/new, then 10 (or 5) prompts streaming two updates each |
107
112
|`load-shared-300`| 300 clients sharing one HttpClient, so one HTTP/2 connection |
113
+
|`fw-<framework>-agent-<t>`, `fw-<framework>-client-<t>`, `load-10-fw-<framework>`| generated from `smoke.json`: the [framework smoke matrix](#framework-smoke-matrix)|
108
114
109
115
Over Streamable HTTP the cells also assert, through `matrix.json` facts, what the retired
110
116
hand-written `interop-*` scenarios checked: the negotiated HTTP version on both sides (h2c between
@@ -118,6 +124,61 @@ threads (`acp-*`) on the server at peak and after close, server heap after a ful
118
124
256 MB at peak and 64 MB after close. p50/p99 latency is recorded in the results and never
119
125
asserted.
120
126
127
+
## Framework smoke matrix
128
+
129
+
The release gate for the framework integrations: the SDK as an application uses it, hosted by
130
+
Spring Boot (`acp-spring-boot-starter`), Micronaut (`acp-micronaut`) and Quarkus (`acp-quarkus`),
131
+
against the TypeScript SDK. **A release candidate must have a green framework smoke matrix** on
132
+
the commit being released (`framework-smoke.yml`, or the local command below), next to the usual
133
+
`./mvnw clean verify`; the full cross-SDK matrix (`cross-sdk.yml`) should be green on it too.
134
+
135
+
`smoke.json` defines it once; `GenConfigs.java` writes its configs (and `--check` keeps them in step):
136
+
137
+
-**`agentSteps`**, run by the TypeScript client against each framework-hosted agent on each of
138
+
that framework's transports (`fw-<framework>-agent-<t>`): `init.initialize` (with the agentInfo
139
+
the `@AcpAgent` annotation declares), `init.agent-capabilities` (capabilities *derived* from
140
+
the handler annotations: the agent has no `@Initialize` method), `init.agent-info`,
-**`load`**: 10 Java load clients x 10 prompts against each framework-hosted agent over HTTP
153
+
(`load-10-fw-<framework>`): no errors, every prompt and update delivered, clean close, no
154
+
`ERROR` on the server. Latency is recorded, not asserted.
155
+
156
+
| Framework | Agent transports | Client | Program |
157
+
|---|---|---|---|
158
+
| Spring Boot 4.1 | stdio (`spring.main.keep-alive=true`), HTTP (the SDK servlet on `server.port` in a servlet web application) | HTTP |[programs/spring](programs/spring)|
0 commit comments