4 Commits
Author SHA1 Message Date
zeekayandHanzo Dev 3f336a2ef7 Go 1.27.1, and the code it can say more simply
Hanzo CI/CD / cicd (push) Failing after 1m34s
CI/CD / gate (push) Failing after 1m35s
Modules declare go 1.27.1 and the build images follow. go fix applied the
modernizers; omitzero is not applied, since it changes what the JSON says.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-16 19:09:21 -07:00
zeekayandHanzo Dev c36ea712a8 name the domain for a namespace it now shares
Hanzo CI/CD / cicd (push) Waiting to run
CI/CD / gate (push) Waiting to run
These types are published through the composed cloud document, whose
schema namespace is FLAT and global: `Service` appears in fifty-three
other app documents, `Run` and `Head` in ten each, and two names that
differ only in case are worse still — every generator PascalCases, so an
SDK binds whichever it read last or refuses to compile.

Three of the five are better names besides:

  Version  -> Artifact   a tag and a digest identifying built bytes is
                         not a version; nothing here is semver.
  Head     -> Tip        its own comment already said "the tip of the
                         default branch".
  Service  -> Pipeline   the row is not a workload, it is the chain
                         behind one: head, built, declared, running.
  Run      -> Execution   } free names for the two that only collided
  Build    -> Check       }

The wire does not move: JSON comes from the tags and those are
untouched, which the shape test asserts. What changes is the name a
generated client gives the class.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-30 20:20:43 -07:00
zeekayandHanzo Dev 1b90a652ad the dashboard can be mounted, not only run
It was package main, so nothing could import it — and that is why this
surface is the one a valid hanzo.id token cannot read. api.hanzo.ai
already carries /v1/deploy, the CD half of this same delivery plane,
behind the gateway's IAM identity; the CI half sits behind admin-guard
instead, which trusts an X-Org-Id header and answers a bearer with a
bare 401. A capability can be mounted; a package main can only be
deployed beside things.

Serve builds the handler and starts the pollers, taking a context so the
caller owns their lifetime. Both caches answer "no snapshot yet" rather
than blocking, so a mount never waits on an upstream fetch. Main keeps
the standalone server — listener and shutdown — and cmd/ci is four lines
over it, so the image is unchanged apart from the path it builds.

Main, not Run: a Run in this package is a CI run, the domain object, and
the binary's body is not one.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-30 17:55:42 -07:00
zeekayandHanzo Dev 628fddb5d1 call it Hanzo Git, which is its name
"Forge" was a borrowed word for the thing that hosts the repos, schedules the
builds and issues the tokens. That thing is Hanzo Git. The word named nothing a
reader could go look at, and it had already drifted: the same paragraph could
say "the forge" and "git.hanzo.ai" and leave you to work out they were one
thing.

forge.go becomes git.go for the same reason — the file reads what Hanzo Git
knows that the run list does not.

Where a second mention would just repeat the name, it says "the server"
instead. Left alone: "unforgeable" and "cannot be forged", which are the other
word entirely and mean what they say.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-20 19:39:04 -07:00