Hanzo CI/CD / cicd (push) Canceled after 0s
CI/CD / gate (push) Canceled after 0s
CI/CD / containment (push) Canceled after 0s
CI/CD / image (push) Canceled after 0s
CI/CD / rollout (push) Canceled after 0s
CI/CD / reach (push) Canceled after 0s
CI/CD / fanout (push) Canceled after 0s
CI/CD / receipt (push) Canceled after 0s
Five checks were measuring something other than what ships. captable pinned two MCP tool names in their pre-v1.26 spelling. zip v1.26.0 settled ONE rule — an id derives from the absolute path the occurrence answers at — so the tools are patch_v1_captable_stakeholders_by_id and post_v1_captable_rounds_by_id_close.bab535c2taught the bots and agents projections that rule and missed this file. The segments still name the same two ops unambiguously and what the test proves is unchanged: the op is addressable through its In alone, over a transport with no URL. pricing declared /v1/pricing/datastore and /v1/pricing/services and proved neither, so the byte-identity golden had quietly stopped covering two sections. They are covered now. The scanner also skips fiber's "/" route, which is middleware territory — every app.Use rides it as a handler chain, by design — and never was a section address. projects pinned the template repository at hanzo-templates/synapse. It is not there:4203c7f2found 45 of 66 gallery entries pointing at repositories that do not exist, verified every source against the GitHub API, and repointed the static sites to hanzo-apps/template-<slug>, which is that org's convention. Only 21 templates (expo-*, flutter*, swiftui*, desktop-*) ever moved to the hanzo-templates layout this line was written against — the catalog is mixed by design, and the variant case beside it still pins hanzo-templates/prism-react. The assertion's intent is untouched: a fork seeds the REPOSITORY, not the gallery page that is an HTML 404, and the provider is github. git's ZAP round trip installed its identity shim through app.Fiber().Use before Mount. At zip v1.26 Fiber() materialises a DRAFT router and every later registration invalidates it, so the next call builds a new *fiber.App and the shim was written onto a throwaway. The handlers saw no X-Org-Id, principal.Org failed, and createRepo answered a 403 that zapface rewrites to a bare UNAUTHORIZED naming none of it. It is a zip component now, installed by the same compose the server runs (f6c9605b, same class). And apps/commerce/risk.go joins allowedRequestUses with its reason. The fraud screen in front of the typed mint op reads the payer, the door actually reached and the jurisdiction signals a credit decision is made on — an identity gate reading strictly more than the org, which is one of the sanctioned reasons. The amount comes off the decoded In and the settlement off the returned receipt, both deliberately not read from the wire, so the request is consulted for exactly the facts no projection can carry on a type. Co-authored-by: Hanzo Dev <dev@hanzo.ai>