mirror of
https://github.com/garrytan/gstack.git
synced 2026-07-08 17:18:16 +02:00
docs: drop ~/.zshrc env note in favor of GSTACK_* env-shim reference
The CLAUDE.md "Where the keys live on this machine" block hand-rolled a
`grep ~/.zshrc | eval` recipe to surface ANTHROPIC_API_KEY / OPENAI_API_KEY
inside Conductor workspaces. That predates the GSTACK_* env-shim
(`lib/conductor-env-shim.ts`, v1.39.2.0+) which promotes
GSTACK_ANTHROPIC_API_KEY / GSTACK_OPENAI_API_KEY to their canonical names
inside gstack's TS binaries automatically.
The zshrc recipe is now an obsolete workaround. Replace with a short note
pointing at the env-shim as the canonical answer. Keep the Agent SDK
\`env: {...}\` gotcha (still real, unrelated to where the key comes from).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -27,25 +27,16 @@ bun run slop:diff # slop findings in files changed on this branch only
|
|||||||
`test:evals` requires `ANTHROPIC_API_KEY`. Codex E2E tests (`test/codex-e2e.test.ts`)
|
`test:evals` requires `ANTHROPIC_API_KEY`. Codex E2E tests (`test/codex-e2e.test.ts`)
|
||||||
use Codex's own auth from `~/.codex/` config — no `OPENAI_API_KEY` env var needed.
|
use Codex's own auth from `~/.codex/` config — no `OPENAI_API_KEY` env var needed.
|
||||||
|
|
||||||
**Where the keys live on this machine.** Conductor workspaces don't inherit the
|
**Env keys in Conductor workspaces.** The `GSTACK_*` env-shim (v1.39.2.0+,
|
||||||
user's interactive shell env, so `ANTHROPIC_API_KEY` and `OPENAI_API_KEY` aren't
|
`lib/conductor-env-shim.ts`) promotes `GSTACK_ANTHROPIC_API_KEY` /
|
||||||
in the default process env. Before running any paid eval / E2E, source them from
|
`GSTACK_OPENAI_API_KEY` to their canonical names inside gstack's TS binaries.
|
||||||
`~/.zshrc` (that's where Garry keeps them):
|
Tests run through gstack entrypoints inherit this promotion automatically.
|
||||||
|
Don't echo the key value to stdout, logs, or shell history. When passing to a
|
||||||
|
test's Agent SDK, do NOT pass `env: {...}` to `runAgentSdkTest` — the SDK's
|
||||||
|
auth pipeline doesn't pick up the key the same way when env is supplied as an
|
||||||
|
object (confirmed failure mode). Mutate `process.env.ANTHROPIC_API_KEY`
|
||||||
|
ambiently before the call and restore in `finally`.
|
||||||
|
|
||||||
```bash
|
|
||||||
bash -c '
|
|
||||||
eval "$(grep -E "^export (ANTHROPIC_API_KEY|OPENAI_API_KEY)=" ~/.zshrc)"
|
|
||||||
export ANTHROPIC_API_KEY OPENAI_API_KEY
|
|
||||||
EVALS=1 EVALS_TIER=periodic bun test test/skill-e2e-<whatever>.test.ts
|
|
||||||
'
|
|
||||||
```
|
|
||||||
|
|
||||||
Do not echo the key value anywhere (stdout, logs, shell history). The grep+eval
|
|
||||||
pattern keeps it in process env only. When passing to a test's Agent SDK, do NOT
|
|
||||||
pass `env: {...}` to `runAgentSdkTest` — the SDK's auth pipeline doesn't pick up
|
|
||||||
the key the same way when env is supplied as an object (confirmed failure mode).
|
|
||||||
Instead, mutate `process.env.ANTHROPIC_API_KEY` ambiently before the call and
|
|
||||||
restore in `finally`.
|
|
||||||
E2E tests stream progress in real-time (tool-by-tool via `--output-format stream-json
|
E2E tests stream progress in real-time (tool-by-tool via `--output-format stream-json
|
||||||
--verbose`). Results are persisted to `~/.gstack-dev/evals/` with auto-comparison
|
--verbose`). Results are persisted to `~/.gstack-dev/evals/` with auto-comparison
|
||||||
against the previous run.
|
against the previous run.
|
||||||
|
|||||||
Reference in New Issue
Block a user