Commit Graph
277 Commits
Author SHA1 Message Date
zeekay ab4e3adfbc chore(release): 0.6.100 [skip ci] 2026-08-19 17:26:16 +00:00
zeekayandHanzo Dev a63f07ec96 chore(release): 0.6.99, and the publish job downloads bytes, not metadata [skip ci]
Co-authored-by: Hanzo Dev <[email protected]>
2026-08-18 23:31:47 -07:00
zeekayandHanzo Dev 2f8793b275 chore(release): 0.6.98 manifest [skip ci]
Co-authored-by: Hanzo Dev <[email protected]>
2026-08-18 19:31:30 -07:00
zeekayandHanzo Dev 1391c0d89e chore(release): 0.6.97 [skip ci]
Co-authored-by: Hanzo Dev <[email protected]>
2026-08-17 14:50:07 -07:00
zeekayandHanzo Dev 2d80aa0d7d chore(release): 0.6.96 [skip ci]
Co-authored-by: Hanzo Dev <[email protected]>
2026-08-16 19:32:37 -07:00
GitHub Action 7502aae9ba chore(release): 0.6.95 [skip ci] 2026-08-08 17:21:41 +00:00
zeekay db4e57be1f dev: ship @hanzo/mcp with it
`dev` launches hanzo-mcp by name (mcp_servers.hanzo.command="hanzo-mcp"), and
until now that binary had to arrive by some other route — the sandbox image
fetched it separately, and a plain `npm i -g @hanzo/dev` got an agent that
names a server it cannot start. Declaring the dependency makes the pair one
install.
2026-08-08 05:38:25 -07:00
GitHub Action 90c7c2d67a chore(release): 0.6.94 [skip ci] 2026-08-08 06:41:41 +00:00
GitHub Action fa8cdc132b chore(release): 0.6.93 [skip ci] 2026-08-07 04:35:29 +00:00
GitHub Action 88c5c7b53a chore(release): 0.6.92 [skip ci] 2026-08-06 22:42:11 +00:00
zeekayandHanzo Dev d3d1dfa1d3 dev is ours: the Hanzo Cloud by default, a binary named dev, our namespaces
hanzoai/dev went public defaulting to someone else's cloud. Four things were
wrong, and all four now have a test that fails if they come back.

DEFAULT PROVIDER AND MODEL. built_in_model_providers() gains `hanzo` -- the
Hanzo Cloud at api.hanzo.ai/v1, Responses wire, bearer from HANZO_USER_KEY --
and it is the default. The default model is zen5-coder. This was not cosmetic:
the old default is not in the gateway catalog, so it 400s against our own
cloud. Measured, not assumed:

  POST api.hanzo.ai/v1/responses model=gpt-5-codex -> 400 "model is not
      available. Use GET /v1/models to list available models"
  POST api.hanzo.ai/v1/responses model=zen5-coder  -> 200, clean output

Our own CLI already documented the bug from the other side -- dev.rs says
"Name the model too -- codex's built-in default is not in the gateway catalog
and would 400" and passes `-c model=` on every launch to work around it. It
also asserts that on the native gateway NO model_provider override is needed,
which is only true once `hanzo` is the built-in default. It is now.

zen5-coder over enso because dev is a coding agent and because enso returns
system-prompt text on the Responses wire that dev actually speaks; zen5-coder
returns the answer. Model ids were read from GET /v1/models with a bearer, not
guessed. Other providers stay fully configurable -- this is the default, not
the only choice.

THE LOGIN COMMAND. Messages said `code login` / `codex login`. The real command
is `hanzo auth login` (`hanzo login` is not a command -- it is swallowed as an
AI task). It now lives once, as auth::LOGIN_COMMAND, so no message can drift
into naming a command that does not exist. References to this binary's own
subcommand became `dev login`.

A BINARY NAMED dev. HEAD built `code` and `codex` and nothing named `dev`, so a
release cut today would ship no `dev` -- and `hanzo code` launches a bare `dev`
off PATH, so every new install would break. `dev` is now the canonical bin,
declared first; `code` remains as an alias to the same program, never the
reverse. The CLI identifies as `dev` / "Hanzo Dev", not "OpenAI Codex".

OUR NAMESPACES. The pipeline published to @just-every/* on npm and pushed
formulae to just-every/homebrew-tap. Both of ours already exist and are already
populated at v0.6.91 -- @hanzo/dev plus all five @hanzo/dev-<target> packages,
and hanzoai/homebrew-tap's Formula/hanzo-dev.rb, which installs `dev` and
expects assets named dev-<triple>. Nothing here is squatted; this is our own
distribution, reclaimed. Assets are renamed to match the formula.

Two live supply-chain bugs fell out of that, both worse than a naming problem:
postinstall.js (runs on every npm install) and the tui auto-updater fetched
from a third party's releases -- the updater also told our users to
`npm install -g @just-every/code@latest`. Worse, a shadowed `isWSL` const put
the two fast paths in the temporal dead zone, so their catch blocks swallowed
the error and EVERY install fell through to that download: the five published
platform packages were never used, and the third-party fetch was not an edge
case but the only path that ran. Fixed and exercised in a sandbox across all
three paths. codex-cli/.pack/ -- a committed `npm pack` artifact CI
regenerates, and the reason the bad URL had two homes -- is now untracked.

DURABILITY, because upstream-merge.yml merges openai/codex every 30 minutes.
A one-time edit to a default is a suggestion that survives until the next
merge. Two mechanisms:

  - .github/merge-policy.json prefer_ours_globs listed only codex-rs/** while
    the workspace that SHIPS is code-rs/**, so it protected nothing that
    ships. The identity-bearing code-rs files are now listed.
  - code-rs/core/tests/hanzo_identity.rs asserts all four properties -- the
    provider, a Zen default, a bin named dev, and no third-party publish
    target. Upstream has no such file, so a merge cannot conflict with it or
    carry the guard away with the thing it guards. Policy can be edited;
    a red build cannot be ignored.

The gate is not decorative: it failed on the un-retargeted pipeline
("release.yml still references `@just-every/`") and went green only when the
pipeline was actually fixed.

Verified: cargo build --bin dev clean; hanzo_identity 4/4; code-core lib
332 passed, 1 failed -- git_info::test_collect_git_info_with_remote, which
fails identically on a clean origin/main checkout here because this machine
has a global [email protected]:.insteadof rewrite. Pre-existing and
environmental, not from this change.

  $ dev exec "say OK"        # fresh profile, no config
  Hanzo Dev v0.0.0
  model: zen5-coder
  provider: hanzo

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-01 14:05:00 -07:00
GitHub Action 983e0dc75f chore(release): 0.2.188 [skip ci] 2025-10-06 11:15:56 +00:00
GitHub Action aa714875fc chore(release): 0.2.187 [skip ci] 2025-10-06 08:47:41 +00:00
GitHub Action 52d6aabef1 chore(release): 0.2.186 [skip ci] 2025-10-06 02:23:01 +00:00
GitHub Action 796e3fb020 chore(release): 0.2.185 [skip ci] 2025-10-03 20:50:36 +00:00
GitHub Action 3861c5360b chore(release): 0.2.184 [skip ci] 2025-10-03 12:36:06 +00:00
GitHub Action cac04e9711 chore(release): 0.2.183 [skip ci] 2025-10-03 09:53:21 +00:00
GitHub Action 63f7d94996 chore(release): 0.2.182 [skip ci] 2025-10-03 07:11:02 +00:00
GitHub Action 4c26cfad4a chore(release): 0.2.181 [skip ci] 2025-10-01 12:12:51 +00:00
GitHub Action 9265d55a2a chore(release): 0.2.180 [skip ci] 2025-10-01 00:00:07 +00:00
GitHub Action c7d70e1c33 chore(release): 0.2.179 [skip ci] 2025-09-30 13:17:04 +00:00
GitHub Action 918ee0e103 chore(release): 0.2.178 [skip ci] 2025-09-30 01:47:07 +00:00
GitHub Action e683e6870a chore(release): 0.2.177 [skip ci] 2025-09-29 22:43:32 +00:00
James Peter 093fb65073 feat(process-hardening): share hardening crate and update proxy 2025-09-30 08:23:01 +10:00
GitHub Action f14912c9c2 chore(release): 0.2.176 [skip ci] 2025-09-29 12:04:59 +00:00
GitHub Action a982c450e3 chore(release): 0.2.175 [skip ci] 2025-09-29 11:32:29 +00:00
GitHub Action 4fab0312f0 chore(release): 0.2.174 [skip ci] 2025-09-29 02:20:12 +00:00
GitHub Action 702f674b87 chore(release): 0.2.173 [skip ci] 2025-09-29 01:26:27 +00:00
GitHub Action bc22304954 chore(release): 0.2.172 [skip ci] 2025-09-28 22:51:47 +00:00
GitHub Action c8386bd284 chore(release): 0.2.171 [skip ci] 2025-09-27 07:47:46 +00:00
GitHub Action 67b3dae038 chore(release): 0.2.170 [skip ci] 2025-09-27 03:35:41 +00:00
GitHub Action 47c99f5716 chore(release): 0.2.169 [skip ci] 2025-09-26 13:12:38 +00:00
GitHub Action e93d328461 chore(release): 0.2.168 [skip ci] 2025-09-26 12:50:42 +00:00
GitHub Action 0883e9bb76 chore(release): 0.2.167 [skip ci] 2025-09-26 01:37:27 +00:00
GitHub Action 7987db3a39 chore(release): 0.2.166 [skip ci] 2025-09-25 12:17:10 +00:00
GitHub Action fd0aadd1fd chore(release): 0.2.165 [skip ci] 2025-09-25 11:32:48 +00:00
GitHub Action c27b426b20 chore(release): 0.2.164 [skip ci] 2025-09-25 07:28:39 +00:00
GitHub Action 32ba22553e chore(release): 0.2.163 [skip ci] 2025-09-25 04:31:52 +00:00
GitHub Action 67bf7c8ce3 chore(release): 0.2.162 [skip ci] 2025-09-22 12:16:22 +00:00
GitHub Action edb1a813b0 chore(release): 0.2.161 [skip ci] 2025-09-22 11:22:46 +00:00
GitHub Action c76abf596e chore(release): 0.2.160 [skip ci] 2025-09-22 10:57:11 +00:00
GitHub Action ea845dfc6e chore(release): 0.2.159 [skip ci] 2025-09-22 09:29:51 +00:00
GitHub Action d921ab1bfb chore(release): 0.2.158 [skip ci] 2025-09-22 09:01:39 +00:00
James Peter c07c7b2429 feat(cli): expose mcp via code subcommand 2025-09-22 15:16:49 +10:00
James Peter 45f8060ead feat(cli): ship code-mcp-server with npm install 2025-09-22 15:02:41 +10:00
GitHub Action 454c1fef81 chore(release): 0.2.157 [skip ci] 2025-09-22 03:19:10 +00:00
GitHub Action 262627acb7 chore(release): 0.2.156 [skip ci] 2025-09-22 01:48:44 +00:00
GitHub Action 87f7fcc83f chore(release): 0.2.155 [skip ci] 2025-09-18 08:45:55 +00:00
GitHub Action 03adca8963 chore(release): 0.2.154 [skip ci] 2025-09-18 07:00:42 +00:00
GitHub Action 36365aeb94 chore(release): 0.2.153 [skip ci] 2025-09-18 04:35:17 +00:00