diff --git a/stack/pi-native.sha256 b/stack/pi-native.sha256 index a7d4cb3668..653166425c 100644 --- a/stack/pi-native.sha256 +++ b/stack/pi-native.sha256 @@ -57,4 +57,4 @@ d64e8c05c7932d377034820b1db0df45612afe64885c0765f8f348a12e1bc955 dist/core/skil 0391543cf703a93a0163b37b3ccebe53e0f12bff6f6162b86d56fb017fe49011 dist/core/system-prompt.js # agent-comms-native-stock-v1 @earendil-works/pi-coding-agent@0.85.1 # agent-comms-native-tree-v1 17edf8badd73bafccf592b651b5a9c0f71b2b05b89db470d1042d3ccb544a0b9 -# agent-comms-native-inputs-v1 eb243f7053a9983fd735cb0d98c6c89ef674052403ef5ea3a41bb3426406df17 +# agent-comms-native-inputs-v1 98ae7ef97dd2811949ed3877038887d95c043f8b078331746bc1f8587645bcbc diff --git a/stack/test-native-import-rpc.py b/stack/test-native-import-rpc.py index 2e0f043f2c..54b616da63 100755 --- a/stack/test-native-import-rpc.py +++ b/stack/test-native-import-rpc.py @@ -51,7 +51,7 @@ def ancestor_probe( package: Path, root: Path, env: dict[str, str], deny: Callable[[], None] ) -> dict: """Admit real PR77, then reach a committed ws entry's optional ancestor require.""" - assert package.is_relative_to(root), "Owned fixture package required" + assert package.resolve().is_relative_to(root.resolve()), "Owned fixture package required" ancestor = package.parent.parent / "bufferutil" ancestor.mkdir(mode=0o700) # Exclusive: never replace an existing dependency. marker = root / "ancestor-executed" @@ -340,6 +340,9 @@ def main(launch: VerifiedNativePackage, root: Path) -> None: with tempfile.TemporaryDirectory(prefix="native-import-rpc-") as directory: root = Path(directory) prepared = pinned_native_package() - native_root = root / prepared.parents[2].name - native_root.symlink_to(prepared.parents[2], target_is_directory=True) - main(VerifiedNativePackage.qualify(native_root / PACKAGE_LAYOUT), root) + # Node resolves modules by realpath, so a link would put every ancestor of the + # probed ws entry back in the shared store; only an owned copy has owned ancestors. + package = root / prepared.parents[2].name / PACKAGE_LAYOUT + package.parent.mkdir(parents=True, mode=0o700) + shutil.copytree(prepared, package) + main(VerifiedNativePackage.qualify(package), root)