The ads Deployment is a SPA server over this repo's dist and nothing else:
no SPA_* config, no API of its own (that is api.hanzo.ai). So the export is
published to the Sites plane as `ads`, s3://hanzo-sites/hanzo/ads, for the
edge to serve with no pod. The build gate already produces dist in the same
job, so the lane names no build of its own.
Checked in headless Chromium: the export on ads.hanzo.ai renders what the pod
renders.
Co-authored-by: Hanzo Dev <[email protected]>
zip requires go 1.26.8 and brings luxfi/accel, luxfi/crypto, luxfi/mdns,
luxfi/metric, zap-proto/mcp and the rest of its graph. With those recorded,
`go build ./...` and `go test ./...` resolve.
Co-authored-by: Hanzo Dev <[email protected]>
The ad plane at api.hanzo.ai/v1/ad had no screen of its own. This adds one
beside the Go module, built the same way as Hanzo Social: campaigns with their
totals, a campaign to launch, pause, edit or delete, ad accounts connected
through /v1/integration, and spend against budget. It shows only what the API
returns, so there is no targeting, creative or delivery data to draw.
Co-authored-by: Hanzo Dev <[email protected]>