Summary
first-tree breeze start (and breeze doctor / status) fails during GitHub identity resolution because it calls gh auth status --json hosts, but gh auth status does not support a --json flag on any current gh release.
As a result, breeze start is unusable with a correctly-authenticated gh CLI.
Environment
first-tree 0.2.10 (npm latest) — also reproduces on 0.2.9
breeze 0.3.0 (bundled)
gh 2.79.0 (2025-09-08)
- macOS (Darwin 25.2.0), zsh
gh auth status output: logged in as yuezengwu via keyring, ssh protocol, scopes admin:public_key, gist, read:org, repo
Reproduction
gh auth status # logged in OK
npx -p first-tree first-tree breeze start \
--allow-repo "agent-team-foundation/first-tree"
Output:
breeze: start failed: gh auth status failed; run `gh auth login --hostname github.com` first
(gh resolve gh identity failed (exit 1): unknown flag: --json)
breeze doctor shows the same underlying failure:
login: unknown
git protocol: unknown
scopes: unknown
required auth scope: identity resolution failed: gh auth status failed; run `gh auth login --hostname github.com` first (gh resolve gh identity failed (exit 1): unknown flag: --json)
Direct check confirms the flag is not valid:
$ gh auth status --json hosts
unknown flag: --json
gh auth status --help only lists --active, --hostname, --show-token. There is no --json variant.
Source Pointer
The offending call path is in the bundled runner-skeleton:
dist/runner-skeleton-*.js — comments at lines 22, 32, 52, 75, and the error wrap at line ~92 all reference gh auth status --json hosts.
Suggested Fix
Replace the gh auth status --json hosts call with a portable identity lookup, e.g.:
gh api user --jq '{login, id}' for the active account, and
- parse
~/.config/gh/hosts.yml (or shell out to gh auth status text output) for git_protocol and scopes.
Either approach works on all supported gh versions and avoids depending on a flag that does not exist.
Impact
Blocks breeze start, breeze run, and breeze run-once for every user on gh CLI — i.e. all currently supported configurations. breeze poll / watch that do not hit this code path still work.
Summary
first-tree breeze start(andbreeze doctor/status) fails during GitHub identity resolution because it callsgh auth status --json hosts, butgh auth statusdoes not support a--jsonflag on any currentghrelease.As a result,
breeze startis unusable with a correctly-authenticatedghCLI.Environment
first-tree0.2.10 (npmlatest) — also reproduces on 0.2.9breeze0.3.0 (bundled)gh2.79.0 (2025-09-08)gh auth statusoutput: logged in asyuezengwuvia keyring, ssh protocol, scopesadmin:public_key, gist, read:org, repoReproduction
Output:
breeze doctorshows the same underlying failure:Direct check confirms the flag is not valid:
gh auth status --helponly lists--active,--hostname,--show-token. There is no--jsonvariant.Source Pointer
The offending call path is in the bundled
runner-skeleton:dist/runner-skeleton-*.js— comments at lines 22, 32, 52, 75, and the error wrap at line ~92 all referencegh auth status --json hosts.Suggested Fix
Replace the
gh auth status --json hostscall with a portable identity lookup, e.g.:gh api user --jq '{login, id}'for the active account, and~/.config/gh/hosts.yml(or shell out togh auth statustext output) forgit_protocoland scopes.Either approach works on all supported
ghversions and avoids depending on a flag that does not exist.Impact
Blocks
breeze start,breeze run, andbreeze run-oncefor every user onghCLI — i.e. all currently supported configurations.breeze poll/watchthat do not hit this code path still work.