Files
python-sdk/.hanzo/workflows/cicd.yml
T
hanzo-dev e5f37a0734 the gate reads the syntax tree, and now it has a runner to read it on
3.2.0 shipped silent data loss to PyPI. O11yGettableAgentCheckIn declared
`integration_config` twice and `removed_at` twice; in Python the second
annotation rebinds the name, so the model advertised fields it did not have and
the value arriving under each shadowed name was read and dropped. 3.2.1 fixed
the models. Nothing yet fixed the reason it got out.

The `cloud-client` gate imports every generated module and calls that the build
step. A class body with a duplicate field IMPORTS CLEAN — measured here: with
the exact 3.2.0 model restored into the tree, `cloud-client` exits 0 and prints
"models: 2172 modules imported". The comment above it claimed the import caught
"a name collision". It never could. That claim is corrected rather than left to
mislead the next reader.

`duplicate-fields` reads the AST instead: repeated AnnAssign targets in one
class body. Verified both directions on the real defect, not a fixture — exit 1
naming both collisions with the 3.2.0 model in place, exit 0 with 3.2.1, 2362
modules scanned in both. It refuses a zero it did not earn: scanning no modules
fails rather than passes, because "found nothing" and "looked at nothing" print
the same otherwise.

And the gate now has somewhere to run. `.github/workflows/cicd.yml` asks for
`hanzo-build-linux-amd64`, which on github.com is served by nothing since the
ARC pool retired — every caller since has queued 86402s, GitHub's 24h timeout,
and reported "cancelled". That is why this repo's suite has not run in weeks
while looking merely flaky. The git-runner fleet serving that label lives on
git.hanzo.ai, which sync-from-github.yml already mirrors onto every ten
minutes, and where publish-pypi.yml already reads its token from KMS. So the
caller goes there, beside the publish it guards, like the other sixteen repos.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-08-05 14:39:55 -07:00

28 lines
1.2 KiB
YAML

# ~7-line canonical caller — all real config lives in /hanzo.yml.
#
# This repo declared a gate and had nowhere to run it. `.github/workflows/cicd.yml`
# imports the same pipeline, but its default label `hanzo-build-linux-amd64` is
# served on github.com by nothing: the ARC pool that last ran it there
# (hanzo-build-linux-amd64-lfpvh-runner-vt7lh, hanzoai/finance, 133s) was retired,
# and every caller since has queued for 86402s — 24h exactly, GitHub's queue
# timeout — and reported "cancelled". A gate that cannot be scheduled is not a
# gate, and a red X that says "cancelled" reads like an infrastructure hiccup
# rather than what it is: the suite never ran, and has not run for weeks.
#
# The pool that DOES serve that label is the git-runner fleet on git.hanzo.ai
# (universe:infra/k8s/git-runner/statefulset.yaml), which is reachable only from
# this plane — the same plane sync-from-github.yml already mirrors every GitHub
# commit onto within ten minutes. So the gate belongs here, beside the publish
# it guards, and this file is the ~7 lines that ask for it.
name: CI/CD
on:
push:
branches: [main]
tags: ['v*']
pull_request:
workflow_dispatch:
jobs:
cicd:
uses: hanzoai/ci/.hanzo/workflows/build.yml@v1
secrets: inherit