Files
zeekay 25ba222c99 count the void returns, and say which routes the hand-written client still owns
834 of the 2479 operations return void, not 716: 716 declare no response at all
and another 118 declare a 2xx carrying no content, and both project to the same
void method. A reader sizing the WithHttpInfo path was told the smaller half.

hanzo-dart/hanzoai's agent and session routes are all in the document, but its
five /v1/cloud/*-machine calls are not — the document declares no path
containing "machine" — so "covers those routes and every other one" would send
someone migrating off that client to a method that does not exist.

strict-casts, strict-raw-types and strict-inference report 4947 issues over this
tree, and strict-casts alone accounts for all 4944 errors; the other two add
none. Also: 2460 models, not 2461.
2026-08-14 20:44:13 -07:00

30 lines
1.3 KiB
YAML

# Hanzo CI — the ONE way this repo is gated, read by hanzoai/ci.
#
# No `images:` and no `deploy:`: this is a client library. Nothing is on pub.dev
# yet, so until a tag publishes it, a consumer resolves it from this git URL.
test:
- name: analyze
# The whole package: 192 API classes, 2460 models, the front door and the
# examples. `dart analyze` treats warnings as fatal, so this is what says
# the projection of the document still compiles.
run: dart pub get && dart analyze
- name: test
# The front door: origin, credential, and one typed decode. Everything else
# in this repo is projection and `analyze` covers it.
run: dart test
# THE CLIENT LANE — this repo is a PROJECTION of one API document at one version.
#
# hanzoai/cloud's release sends `repository_dispatch: spec-update` carrying
# (version, sha, spec_sha256); hanzoai/ci fetches openapi.yaml AT THAT SHA,
# REFUSES if the bytes hash to anything else, runs `generate:`, writes
# `.spec-lock` beside the code, and — only after the `test:` block above has
# passed over exactly those bytes — commits and cuts a patch.
client:
generate: ./scripts/generate.sh
# NO version: — this client has not had a first release, so there is no patch
# for the lane to derive. Its projection still lands and is still gated; the
# cut waits for a human.