Skip to content

product: HANZO_API_KEY is a machine caller's bearer - #47

Merged
zeekay merged 2 commits into
mainfrom
machine-key
Nov 7, 2026
Merged

zeekay merged 2 commits into
mainfrom
machine-key

Conversation

@zeekay

@zeekay zeekay commented Nov 7, 2026

Copy link
Copy Markdown
Member

Seam::open reads HANZO_API_KEY at the point of use, ahead of the stored login (as hanzo dev's provider does). A key is still never filed as an identity.

Why: the Grok bot's sessions belong to actor hanzo/hanzo/z (its org key hanzo/grok-bot-iam). In a box leased with that key the CLI has no session (not signed in); signed in as anyone else it gets 404 session not found. With the key in the environment the lookup answers 200.

Tests: cargo test --bin hanzo 401 passed (new a_machine_key_is_the_variable_trimmed_and_nothing_when_blank), cargo clippy --bin hanzo clean, make verify no drift.

https://claude.ai/code/session_015XYKLnBbrbajqj1GpRydF8

A caller that holds only an API key could not use any cloud command:
a key is never filed as an identity, so a sandbox leased with a key
said `not signed in`, and one signed in as a person read none of the
sessions the key had opened (404: a session belongs to its actor).

Read HANZO_API_KEY at the point of use in Seam::open, ahead of the
stored login, as `hanzo dev`'s provider already does.

Claude-Session: https://claude.ai/code/session_015XYKLnBbrbajqj1GpRydF8
The deployed document dropped PUT /v1/ai/limits, so the client lane
read the committed projection as stale.

Claude-Session: https://claude.ai/code/session_015XYKLnBbrbajqj1GpRydF8
@zeekay
zeekay merged commit bc24731 into main Nov 7, 2026
5 checks passed
@zeekay
zeekay deleted the machine-key branch November 7, 2026 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant