hanzo-dev 4656c316f4 build: react-native-svg — the dependency gui 8 needs and the bump forgot
`deps: console onto gui 8.x` moved @hanzo/gui 7.3.0 -> ^8.0.0. gui 8 pulls
@hanzogui/lucide-icons-2@8.0.0, whose ESM build does

    import { Svg, Path } from "react-native-svg"

while declaring react-native-svg in NEITHER `dependencies` NOR
`peerDependencies`. Nothing installs it, so webpack cannot resolve it, and
`next build` dies with a wall of "Module not found: Can't resolve
'react-native-svg'" — once per icon. The `react-native$: react-native-web`
alias in next.config.mjs does not cover it: `$` is an EXACT-match alias and
react-native-svg is a different package.

So console main has been UNBUILDABLE since that bump. That is why
ghcr.io/hanzoai/console has no v8.5.33, v8.5.34 or v8.5.35 — the tags were
cut, the images were never published, and universe's bump to v8.5.35 had to
be reverted to v8.5.32 to keep a pullable image. The three fixes riding those
tags (the 1px display line-box, the missing 404, @hanzo/iam 0.21.2) have been
finished in main and dark in production the whole time.

The estate already had the answer: every app on gui 8 carries this dependency
explicitly (hanzo.ai, hanzo.sh-std, app-std, console-std all pin 15.15.5),
and every app still on gui 7.3.0 does not need it. Console took the bump
without the companion. This restores the one established pairing.

Measured, not assumed:
  before  next build -> exit 1, "Can't resolve 'react-native-svg'"
  after   next build -> exit 0, 42 routes emitted
  pnpm install --frozen-lockfile -> exit 0 (the Dockerfile's exact command)

Lockfile regenerated with the DECLARED pnpm 11.17.0 (node 22), not the pnpm 9
on PATH — pnpm 9 renormalizes peer-suffix keys and churns 1061 lines. This
diff is +96/-0, purely additive.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-08-03 12:11:49 -07:00

console2

Hanzo Cloud Console

Unified admin console for Hanzo Cloud and all Hanzo cloud products. Built on @hanzo/gui (cross-platform UI) over the unified /v1 backend (hanzoai/cloud). Dark theme, OIDC sign-in via Hanzo IAM.

Manages: Providers · Models · Applications · Stores · Chat — with an extensible product-module registry so every cloud product can be added as a module.

Quick start

npm install
cp .env.example .env.local
# set NEXT_PUBLIC_IAM_CLIENT_ID for live sign-in; defaults point at production.
npm run dev          # http://localhost:4000

Scripts

Script What
npm run dev Dev server on :4000
npm run build Production build (type-checks; Gui CSS injected at runtime)
npm run start Serve the production build
npm run typecheck tsc --noEmit (strict)

Configuration

All config is NEXT_PUBLIC_* (browser app, cookie auth). See .env.example.

Var Default Meaning
NEXT_PUBLIC_CLOUD_URL same origin, else https://api.hanzo.ai The ONE Hanzo API endpoint (unified /v1 backend). Never a per-service API host.
NEXT_PUBLIC_IAM_URL https://iam.hanzo.ai Hanzo IAM OIDC authority
NEXT_PUBLIC_IAM_APP_NAME hanzo-console IAM application (<org>-<app>)
NEXT_PUBLIC_IAM_ORG_NAME hanzo IAM organization
NEXT_PUBLIC_IAM_CLIENT_ID OAuth client id

Architecture

See LLM.md for the full design (base choice, /v1 client, auth flow, the product-module registry, and the Providers surface). Endpoint reference in docs/endpoints.md.

License

BSD-3-Clause. Copyright (c) 2026-present, Hanzo AI, Inc.

S
Description
No description provided
Readme
88 MiB
Languages
TypeScript 99.1%
JavaScript 0.5%
CSS 0.4%