Summary
These tests build tempdir workspaces without a git boundary, so on hosts whose own environment is inside a git checkout (e.g. a user home that is a repository) find_project_root can leak the host repository into the resolution and reclassify explicit global config dirs as workspace-local, flipping test outcomes by environment.
Each test now anchors the project boundary by creating a .git directory in the workspace.
Area
src/crates/adapters/opencode-adapter/src/instruction_source.rs (tests module) + tests/tool_source_contracts.rs. Crate: bitfun-opencode-adapter.
Reproduction or evidence
At 32f2427 the tests create workspace tempdirs with no .git anchor (Grep zero hits for workspace .git anchoring in both files); running the suite on a host where the home directory is a git checkout reclassifies explicit global directories as workspace-local. find_project_root production semantics are untouched.
Environment
Any host with a surrounding git repository (CI runners where $HOME is a checkout); baseline 32f2427. Test-only change; no production diff.
AI-assisted change. Testing: verified locally (cargo check -p bitfun-opencode-adapter exit 0; instruction_source filter 15 passed; --test tool_source_contracts 9 passed, 0 failed).
Summary
These tests build tempdir workspaces without a git boundary, so on hosts whose own environment is inside a git checkout (e.g. a user home that is a repository) find_project_root can leak the host repository into the resolution and reclassify explicit global config dirs as workspace-local, flipping test outcomes by environment.
Each test now anchors the project boundary by creating a .git directory in the workspace.
Area
src/crates/adapters/opencode-adapter/src/instruction_source.rs (tests module) + tests/tool_source_contracts.rs. Crate: bitfun-opencode-adapter.
Reproduction or evidence
At 32f2427 the tests create workspace tempdirs with no .git anchor (Grep zero hits for workspace .git anchoring in both files); running the suite on a host where the home directory is a git checkout reclassifies explicit global directories as workspace-local. find_project_root production semantics are untouched.
Environment
Any host with a surrounding git repository (CI runners where $HOME is a checkout); baseline 32f2427. Test-only change; no production diff.
AI-assisted change. Testing: verified locally (
cargo check -p bitfun-opencode-adapterexit 0; instruction_source filter 15 passed;--test tool_source_contracts9 passed, 0 failed).