Skip to content

試験が、端末の本物のhost設定を書き換えないようにする - #11

Merged
quolu merged 1 commit into
mainfrom
snowwhite/test-host-env-isolation
Oct 3, 2026
Merged

quolu merged 1 commit into
mainfrom
snowwhite/test-host-env-isolation

Conversation

@quolu

@quolu quolu commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator

何が起きたか

test/hooks-cli.test.mjs は一時のHOMEをCLIへ渡すが、CODEX_HOME・CLAUDE_CONFIG_DIR・GROK_HOME を消していなかった。CLI(src/setup-hosts.mjs)はHOMEよりこれらを優先する。

CODEX_HOME を持つ端末でこの試験を走らせると、CLIは試験のHOMEでなく、利用者の本物の hooks.json を相手に動く。2026-10-03に実際に起きた。

  • 本物の hooks.json へLatticeのhandlerを足し、外した(他の項目は残った)。
  • hooks.json.bak-lattice-hooks-*・hooks.json.pre-lattice-hooks-* を本物のフォルダへ残した。
  • 試験は8件落ちた(handlerが試験のHOMEに入らないため)。

CIのrunnerではこれらの変数が無いので、今まで表に出なかった。

直したこと

  • 試験の入口(productTestEnvironment)が、3つの変数を子processへ渡さない。
  • hooks試験の isolatedEnv も同じ3つを消す。node --test で直に走らせた時に効く。
  • 再発を防ぐ試験を足した。偽のフォルダを3つの変数に指して hooks install/uninstall を走らせ、偽のフォルダが1 byteも変わらないことを見る。

製品のcodeは変えていない。版も上げない。

確かめたこと

  • 3つの変数を偽のフォルダへ向けて hooks-cli.test.mjs を走らせ、52件成功、偽のフォルダは不変。
  • isolatedEnv の修正を外すと、足した試験は落ちる。
  • 3つの変数を持つ端末で npm run ci 全体が成功(root 1944件中 0失敗)。本物の hooks.json と config.toml のhashは前後で同じ。

🤖 Generated with Claude Code

hooksの試験は一時のHOMEをCLIへ渡すが、CODEX_HOME・CLAUDE_CONFIG_DIR・GROK_HOMEを消していなかった。
CLIはHOMEよりこれらを優先するので、CODEX_HOMEを持つ端末で試験を走らせると、利用者の本物の
Codex hooks.jsonへhandlerを足し、外し、backupを残した(2026-10-03に実際に起きた)。

- 試験の入口(productTestEnvironment)が3つの変数を子processへ渡さない
- hooks試験のisolatedEnvも同じ3つを消す(node --test で直に走らせた時のため)
- 偽のフォルダを3つの変数に指して、1 byteも変わらないことを確かめる試験を足した

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@quolu
quolu merged commit 69eda94 into main Oct 3, 2026
5 checks passed
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