The installed @hanzo/bot binary (v2026.2.16) reads OPENCLAW_GATEWAY_TOKEN
for the node run command's token resolution, not BOT_GATEWAY_TOKEN.
Also writes gateway config to bot.json so the config loader picks it up
as a fallback.
Add install, login, logout, run, stop subcommands to `hanzo bot` for
managing local bot agent nodes that connect to gw.hanzo.bot. Browser
OAuth flow authenticates against hanzobot-client-id with dedicated token
storage at ~/.hanzo/bot/token.json. Password grant fallback via
--no-browser flag.
Normalize env var lookup: IAM_ canonical prefix with HANZO_IAM_ accepted
as backwards-compatible fallback via _env() helper in both auth.py and
bot/commands.py.
Every service command (vector, kv, search, doc, events, pubsub, queues,
jobs, secrets, tasks, fn, auto, flow, ml, o11y, cx, growth, platform)
now makes authenticated HTTP calls via shared service_request/check_response
utilities in base.py. No stubs, no hardcoded data, no placeholders.
Bump hanzo 0.4.0→0.4.1, hanzo-cli 0.2.0→0.2.1.
- Add `hanzo bot` command group (status, logs, deploy, env, events) via PaaS API
- Replace all storage placeholders with real boto3 S3 API calls to s3.hanzo.ai
- Rename `hanzo storage` → `hanzo s3` (storage kept as alias)
- Rewrite `hanzo dev` as lazy-install passthrough to @hanzo/dev binary
- Rewrite `hanzo net`/`hanzo node` as passthrough to hanzod binary
- Remove ~350 lines of inline orchestrator/node code in favor of os.execvp()
- Add `hanzo k8s` command group to hanzo-cli that wraps kubectl with
Hanzo-managed auth and default namespace. Uses KubectlGroup that
dynamically proxies unknown subcommands to kubectl (e.g.
`hanzo k8s get pods` -> `kubectl get pods -n hanzo`).
- Remove REPL mode from hanzo wrapper: bare `hanzo` now shows help
instead of dropping into interactive REPL.
- Remove hanzo-ai, hanzo-chat, hanzo-repl entry points.
- Make hanzo-cli a core dependency of hanzo (was optional [cli] extra).
- Remove unused typer dep, move openai/anthropic/prompt-toolkit to
optional extras ([ai], [interactive]).
Co-authored-by: Hanzo Dev <[email protected]>
Run ruff check --fix and ruff format across the repo to fix ~495
auto-fixable lint errors (mostly I001 import sorting) and reformat
225 files to match the py312 target.
Co-authored-by: Hanzo Dev <[email protected]>
Extract _exchange_iam_token method for cleaner auth caching logic.
Fix deploy_env to send full container payload on PUT (PaaS requires it).
Add e2e test scaffold.
Co-authored-by: Hanzo Dev <[email protected]>
- Merged hanzo-cli into main hanzo package (v0.2.4)
- Removed hanzo-mcp-client (using official MCP client)
- Removed empty packages (hanzo-a2a, hanzo-cluster, hanzo-miner, hanzo-tools)
- Added hanzo and hanzo-repl to CI pipeline
- Updated all packages with parallel testing (pytest-xdist)
- Consolidated from 15 to 8 active packages
- Fixed imports and dependencies after consolidation
- All CI tests passing with 111 total tests across 5 packages