35 Commits
Author SHA1 Message Date
zeekayandHanzo Dev db1e36aded We are based in San Francisco
Co-authored-by: Hanzo Dev <[email protected]>
2026-09-24 16:18:39 -07:00
zeekayandHanzo Dev 9fffdd910e Typecheck on the native compiler, keep 6 for the tools
typescript 7.0.2 is the native compiler and exports no JavaScript API, so
typescript-eslint cannot read it — it refuses TS 7 outright. It comes in
aliased as tsgo and does the typechecking through a new typecheck script;
typescript stays on the 6 line for the tools.
7 diagnostics before and after.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-16 23:29:06 -07:00
zeekayandHanzo Dev b96e2e2f47 runs-on names a machine, not a purpose
The purpose-prefixed labels (hanzo-build-*, hanzo-deploy-*, hanzo-docs-build-*)
are retired in favour of the bare <os>-<arch> every runner already advertises.

They were not a capability, only a habit, and the habit cost builds: papers asked
for hanzo-build-linux-amd64, no online runner offered it, and two idle
linux-amd64 runners sat beside the queue while the build simply never ran. The
lux tree lost three days to lux-linux-amd64 the same way.

What a job is FOR is the workflow's name. runs-on is the machine it needs.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-15 11:36:45 -07:00
zeekayandHanzo Dev 5f283e2a83 Present the company, not a roster of people
Public sites carried leadership pages, team pages, advisor and executive
rosters, and an executive-bios block on the press page. They are gone, along
with the routes and navigation entries that led to them, so nothing links to a
page that is no longer there.

What the organisation does stands on its own. A visitor evaluating the work does
not need a wall of headshots to do it, and a roster is a maintenance burden that
goes stale the moment anyone moves.

Contact points are addressed by function rather than by person, so a message
reaches whoever holds that responsibility today.

The Hanzo Team product pages and the AI agent galleries are untouched: they
describe a product, not a staff list.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-01 10:55:50 -07:00
zeekay f4e2e737b3 the face is Zen, and it ships from @hanzo/font
One family. Font stacks name Zen and fall back to the native faces, tokens
name the role rather than a face, and the packages that used to supply a
face now point at @hanzo/font.

Self-hosted @font-face blocks are removed rather than renamed: rewriting the
family in one would leave a src pointing at a file this repo no longer ships.
@hanzo/font carries the binaries and declares the faces, so the local copies
go with the declaration that used them.

Comments naming a face we no longer use are deleted, not reworded.
2026-09-01 08:59:49 -07:00
zeekayandHanzo Dev b2e968b9d9 Credit the organisation on every published surface
Leadership and team cards, board and founding prose, an AI persona modelled on a
named individual, contributor and partner entries, and personal correspondence
addresses all named one person. The organisation carries them now.

Other people keep their names. Where a card, a board list or a founding line
named someone else alongside, they stay exactly as they were; only the one entry
was removed, and prose that listed two names now reads with one.

Sample and fixture data uses the placeholder name these tests already use
elsewhere, so the IAM username defect the notes describe still reads as written.
The zoo/yapp MIT notice names the foundation that publishes it.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-01 08:52:39 -07:00
zeekayandHanzo Dev 5b6161f25d Publish under the org, not a person
Bylines, paper authorship, correspondence addresses and the founder blurb under
each post named an individual. They name the organisation that published the
work instead: the brand on posts and pages, the research byline on papers, and
research@ in place of a personal address. Both are what these repositories
already used elsewhere — nothing new was coined.

Co-authors are untouched. Where a paper named someone else alongside, they stay
named; only the one byline changed. Bibliography entries, running heads,
PDF metadata and affiliations move with it, so a citation still resolves to
whoever the cited paper names.

Sample and fixture data uses the placeholder name these tests already use
elsewhere, so no assertion changed meaning.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-01 08:52:39 -07:00
zeekay bfc601c0ac the job asks for its runner the way the fleet answers
runs-on was a bare scalar. Jobs written that way queue and are never
picked up — link and quest have waited since 10 August, painter since the
5th, none of them with a single success — while repos writing the same
label as a sequence drain within seconds of a push on the same fleet.

Same label, same runners, different shape. It fails silently: nothing errors,
the job simply never starts, so the lane looks configured and does nothing.
2026-08-29 12:59:27 -07:00
zeekayandHanzo Dev 8d0ea3e622 Merge remote-tracking branch 'origin/main'
Co-authored-by: Hanzo Dev <[email protected]>
2026-08-18 20:39:28 -07:00
zeekayandHanzo Dev 3cae2606e8 docs(network): position AI as proof-of-useful-work money
Co-authored-by: Hanzo Dev <[email protected]>
2026-08-18 20:38:54 -07:00
zooqueen e15f2b2b4c the tab shows the Hanzo mark, the same one hanzo.ai shows
Five Hanzo properties were showing four different favicons — this one pointed at
a UUID-named png left behind by the scaffolding it was generated from, so a
reader with tabs open across the estate could not tell which was ours.

Both files now come byte-for-byte from @hanzo/logo, which is where the mark
lives, and the declaration is hanzo.ai's: the .ico for browsers that want one
and the .svg for those that would rather scale it.
2026-08-14 23:37:39 -07:00
zeekayandHanzo Dev fadf71452f name the frameworks and deny them in the same breath
The sentence said formal certification is scoped per enterprise engagement and
named SOC 2, ISO 27001 and HIPAA while denying none of them. A reader who scans
sees three framework names next to the word certification, which is the
impression the whole sweep was meant to remove.

hanzo.ai's own copy gate states the rule: a framework may be named only where
the same sentence denies holding it, and it cannot be satisfied by implying.

So it says outright that we hold none of them today, and then makes the offer.
The offer is the stronger half anyway.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-14 20:23:39 -07:00
zeekayandHanzo Dev 3bf092e04e say what our controls are, not that we hold a certificate we do not have
there is no soc 2 report, no iso 27001 certificate, no auditor and no trust
center behind the words this site was using. "soc 2 type ii certified",
"soc2 type 2 attested", "annual audit completed" and "hipaa compliant" each
tell a buyer a document exists that they can ask for, and procurement will
ask. a claim we cannot produce evidence for is worse than no claim: it turns
a security review into a credibility problem, and it is the kind of statement
a regulator and a plaintiff both read literally.

what is true is the control set. encryption in transit and at rest,
role-based access control and audit logging are real and running, so the copy
now says controls aligned to the soc 2 type ii control set and stops there.
gdpr and ccpa are laws rather than certificates and those claims stand
untouched.

the compliance work is still on offer, so nothing is left as a hole or an
apology. formal certification -- soc 2 type ii, iso 27001, hipaa with a baa --
is scoped per enterprise engagement, which is the honest version of the sale
and also the true one. no timeline is promised anywhere, because we do not
control an auditor's calendar.

uptime figures go with them. 99.9/99.99 presented as an sla is a contractual
number, and we publish no availability agreement, so the promise is replaced
by the architecture that actually delivers it: multi-region redundancy with
automated failover. measured records on the status page are left alone, as
are illustrative numbers inside product mockups.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-14 19:37:34 -07:00
zeekayandHanzo Dev 289e38aa1b say where a vulnerability report goes, rather than leaving it to chance
Co-authored-by: Hanzo Dev <[email protected]>
2026-08-14 19:13:04 -07:00
zeekayandHanzo Dev 7b4afb7a27 drop the dev tagger plugin: the compiler already annotates, and this one did not exist
The dependency was an unrelated package that happens to share a plausible name,
pinned to a version that was never published, so --frozen-lockfile 404'd and
neither install nor build ran at all. Importing it at the top of vite.config.ts
meant the config itself could not load.

Nothing is lost by deleting rather than replacing it. The gui compiler emits the
same annotation from the AST pass that already walks every component, gated on
NODE_ENV=development: data-is (which component), data-in (the component it is
used inside) and data-at (file:line). It runs AFTER flattening, so the tag names
the component that actually rendered rather than one the optimizer removed.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-05 21:45:37 -07:00
zeekayandHanzo Dev d3efce6097 Delete unrouted testimonials component with invented executive quotes
Nothing imports src/components/hanzodev/Testimonials.tsx, so it reached no
bundle, but it attributed fabricated product quotes to real, named people at
Ramp, Intercom and Notion. Remove the file rather than leave those
attributions sitting in the tree.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-05 19:11:15 -07:00
zeekayandHanzo Dev 4d124926ce Point every Discord invite at the current Hanzo server (discord.gg/CJCyAsm9Vr)
Co-authored-by: Hanzo Dev <[email protected]>
2026-08-04 21:47:29 -07:00
zeekayandHanzo Dev 3e53685b9b ci: name a pool the fleet actually advertises
The deploy job asked for `ubuntu-latest`. This file lives in .hanzo/workflows,
which GitHub never reads -- git.hanzo.ai is the only thing that can run it, and
the fleet advertises no generic ubuntu-* label. That is deliberate and recorded
in the runner ConfigMap: ~1400 mirrored upstream forks all ask for ubuntu-latest,
and the forge errors rather than skipping a job it cannot place, so one bad job
was retried ~520 times across 10 runners.

An unmatched label is not a failure here, it is silence -- the job queues until
the 24h timeout. So this deploy has never produced an image, and nothing ever
said so. Same class as the playground regression, found by checking every
.hanzo/workflows file against the labels the runner ConfigMap actually declares
rather than against the ones I assumed.

hanzo-build-linux-amd64 is registered (verified against cm/git-runner-config).

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-01 16:54:13 -07:00
zeekayandHanzo Dev cc062ff174 build: migrate tsconfig to TypeScript 7 (native compiler)
TypeScript 7 is the native Go compiler and removes `baseUrl` and
`moduleResolution: node|node10`. Both appear here, so `tsc` from TS7
refuses the config outright (TS5102 / TS5108) and cannot typecheck.

`paths` targets resolve relative to `baseUrl` when it is set and relative
to the tsconfig file otherwise. Every `baseUrl` folded here already
pointed at the config's own directory, so dropping it moves nothing and
the targets are left byte-identical. Where a baseUrl pointed elsewhere,
each affected target was rewritten as join(baseUrl, target).

`moduleResolution` was chosen from the declared `module`: commonjs ->
node16, esnext/preserve -> bundler. Configs whose `module` is unset or
exotic were left alone rather than guessed at.

The result is accepted by BOTH toolchains, so nothing has to upgrade
TypeScript in lockstep. Verified on hanzo/chat packages/api: tsc 5.9
779 -> 778 errors (no regression), and tsc 7.0.2 now runs the project
in 2s where it previously refused the config.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 14:18:18 -07:00
zeekay 11029d82bc ci: drop the Gitea mirror-sync nudge
Superseded: the Hanzo GitHub App pushes a webhook, so the forge tracks GitHub
without a per-repo workflow. This file called git.hanzo.ai/api/v1/.../mirror-sync
— a Gitea API for a system we no longer drive — and would sit inert in every repo.

One mechanism, in one place, instead of ~350 copies of a cron.
2026-07-27 10:33:17 -07:00
zeekayandHanzo Dev 1c0c67e696 serve hanzo.network from hanzoai/static, not Pages or CF Pages
.github/workflows now holds sync.yml alone, carrying refs to git.hanzo.ai; every
build runs natively there from .hanzo/workflows.

.hanzo/workflows/deploy.yml publishes ghcr.io/hanzoai/hanzo-network:<sha> and does
not deploy — the operator CR in hanzoai/universe names which tag is live.

The GitHub Pages workflow it replaces is dead, not moved: Pages did not survive
the hanzoai -> hanzo-apps transfer, so the repo's pages API is 404 and every run
since 2026-03-04 ends "Failed to create deployment (status: 404) … Ensure GitHub
Pages has been enabled". Relocating a guaranteed 404 to the forge buys nothing.
public/CNAME goes with it: that file is a Pages control file, and neither
hanzoai/static nor Cloudflare reads it.

The live host is a Cloudflare Pages project built through CF's Git integration,
outside every workflow file here — nothing in this commit changes what serves
today.

The Dockerfile ends FROM ghcr.io/hanzoai/static:v0.5.1 with dist at /public and
runs it with -spa: 98 BrowserRouter routes plus the app's own path="*" NotFound
need the fallback, or every deep link 404s. Measured against the image: -spa
returns 200 for /account/billing, and without it a missing path 404s.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 08:46:57 -07:00
zeekay 252b9a3b22 ci: nudge git.hanzo.ai to pull on push
git.hanzo.ai mirrors this repo by PULL on a ~10-minute interval, and arcd runs
CI/CD there — so every push waited out that interval before anything built.
This asks Gitea to pull HEAD immediately.

Latency only: the repo already mirrors via the App webhook, so a missing
HANZO_GIT_TOKEN or a failed curl is non-fatal and never fails the push.
Idempotent (mirror-sync just pulls HEAD) and concurrency-coalesced.
2026-07-27 08:19:01 -07:00
zeekay 3410c1e89f chore: symlink AGENTS.md and CLAUDE.md to LLM.md
Canonical project context lives in LLM.md. Symlinks ensure
agentic coding tools (Claude Code, Cursor, etc.) find context
automatically regardless of which filename they look for.
2026-04-01 14:12:17 -07:00
zeekay e399fbcbcc rebrand: purge PostHog references 2026-03-13 17:38:19 -07:00
zeekay 2c60bdf791 rebrand: langfuse→console, posthog→insights in upstream registry 2026-03-13 16:27:20 -07:00
zeekay 617c6a14f3 refactor: remove all Stripe references — Commerce is payment provider
Stripe banned Hanzo. Removed Stripe SDK, webhook handlers, hardcoded
keys, and StripePricingTable. Billing redirects to billing.hanzo.ai.
2026-03-04 10:57:40 -08:00
zeekay b86b3fb1c6 feat: update NetworkLanding page 2026-02-27 20:39:34 -08:00
zeekay be361f6d9f Redesign hanzo.network as 'The AI Chain' landing page
- Full-screen hero with animated grid canvas (pulsing dots at intersections)
- Bold positioning: 'The AI Chain' — like Solana, purpose-built for AI workloads
- Verifiable compute: NVIDIA TEE attestation, cryptographic training proofs
- Ecosystem section: Hanzo AI + Zen Models + Lux L1 + Zoo Labs with stack diagram
- How it works: 4-step protocol (Submit → Route → TEE Execute → On-chain Settle)
- Use cases: frontier model training, inference, agent compute, benchmarks
- Dual CTA: Build (developers) + Earn (GPU providers) with feature lists
- Fixed header, minimal footer, animated section reveals
2026-02-27 19:47:31 -08:00
zeekay 0751890b6b Update product taxonomy: postgres → sql
Point github, docker, and CLI refs to hanzoai/sql.
2026-02-27 09:27:43 -08:00
zeekay 5cf7d1afce refactor: convert all branding to monochrome (black/white/gray only) 2026-02-23 12:59:27 -08:00
zeekay 0365e6ffd3 chore: update LLM.md, standardize CLAUDE.md symlink convention
- LLM.md is the canonical AI context file (tracked in git)
- CLAUDE.md is a local symlink to LLM.md (gitignored)
- Updated LLM.md content for accuracy and conciseness
2026-02-17 18:13:25 -08:00
zeekay 525394db62 chore: add MIT LICENSE 2026-02-14 05:26:46 -08:00
zeekay 5edc977bfd chore: sync uncommitted changes 2026-02-13 22:15:48 -08:00
zeekay b1ee2a5673 feat: add llms.txt for AI agent discovery 2026-01-28 11:22:15 -08:00
zeekay 1aa6a8f29c Initial commit: Hanzo Network site
Decentralized AI compute marketplace based on hanzo.ai
- New NetworkLanding page with compute-focused design
- Cyan/blue color scheme for network branding
- Features: distributed GPU, secure verification, global edge
2026-01-20 16:15:28 -08:00