fix(tests): tests no longer reach a real herdr server - a *-shim ancestor hid the mock, the sandbox kept the pane's socket
A suite run from an agent pane with --basetemp .../pytest-pr56-shim left seven workspaces on that pane's real server (multi-agent-mux): - the real-herdr resolvers (lib.sh _is_shim_path and the generated shim) skipped every PATH directory with "-shim" anywhere in its path, so the basetemp hid the mock's bin/ and the real herdr ran; only a directory that is itself *-shim is a wrapper now; - mam_sandbox kept HERDR_SOCKET_PATH (and the pane/tab ids), which the real herdr follows over the sandbox HOME; it drops them now. tests/test_herdr_real_server_leak.py: L1 (ancestor *-shim, both resolvers) and L2 (pane routing dropped) fail before the fix; L1b keeps a *-shim wrapper directory excluded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VCgu9Fa9iT7TbJUSzdq4Ff
This commit is contained in:
1 parent
8b0b4a07dc
commit
525df2bb58
3 files changed
+102
-3
No files matched your search
@@ -112,9 +112,15 @@ _canonical_file() {
|
||||
|
||||
_is_shim_path() {
|
||||
case "/$1/" in
|
||||
*"/.mam/shim/"*|*-shim/*|*"$_HERDR_SHIM_DIR_PATTERN"*|*"$_HERDR_SKILLS_BIN_PATTERN"/*)
|
||||
*"/.mam/shim/"*|*"$_HERDR_SHIM_DIR_PATTERN"*|*"$_HERDR_SKILLS_BIN_PATTERN"/*)
|
||||
return 0 ;;
|
||||
esac
|
||||
# A wrapper directory named *-shim, the directory itself only: an ancestor
|
||||
# such as a pytest basetemp "pytest-x-shim" above a mock's bin/ made the
|
||||
# resolver skip the mock and run the real herdr.
|
||||
case "${1%/}" in
|
||||
*-shim) return 0 ;;
|
||||
esac
|
||||
return 1
|
||||
}
|
||||
|
||||
@@ -127,7 +133,7 @@ _resolve_real_herdr_path() {
|
||||
[ -x "$dir/herdr" ] || continue
|
||||
cand="$(_canonical_file "$dir/herdr" 2>/dev/null)" || cand="$dir/herdr"
|
||||
[ -n "$cand" ] || cand="$dir/herdr"
|
||||
_is_shim_path "$cand" && continue
|
||||
_is_shim_path "$(dirname "$cand")" && continue
|
||||
real_path="$dir/herdr"
|
||||
break
|
||||
done
|
||||
@@ -167,7 +173,7 @@ _resolve_real_herdr() {
|
||||
local dir save_ifs="$IFS" real_path=""
|
||||
IFS=:
|
||||
for dir in $PATH; do
|
||||
if [[ "$dir" != *".mam/shim"* ]] && [[ "$dir" != *"-shim"* ]] && [ -x "$dir/herdr" ]; then
|
||||
if [[ "$dir" != *".mam/shim"* ]] && [[ "${dir%/}" != *-shim ]] && [ -x "$dir/herdr" ]; then
|
||||
real_path="$dir/herdr"
|
||||
break
|
||||
fi
|
||||
|
||||
Reference in new issue
Block a user