{"version":"2.1.251","anchor":"plugin-eval-sandbox-cleanup-verifies-each-directory-as-it-wa","canonical_anchor":"plugin-eval-sandbox-cleanup-verifies-each-directory-as-it-wa","heading":"Plugin eval sandbox cleanup verifies each directory as it walks","tier":"internal","area":"Plugin Eval","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.251\/e\/plugin-eval-sandbox-cleanup-verifies-each-directory-as-it-wa","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.251","markdown":"### Plugin eval sandbox cleanup verifies each directory as it walks\n\nEval sandbox cleanup verifies each directory as it walks so a swapped symlink can't redirect it.\n\n**What**\n\nCleaning up a plugin eval sandbox now walks the directory tree recursively, confirming each step is still the same file it expected before changing its permissions to owner-only, so a symlink swapped in mid-cleanup cannot redirect it.\n\n**Details**\n\n- the recursive unlock runs on Linux and WSL, or when the directory is explicitly marked as owned by the harness; it is skipped on Windows\n- the eval temp area gets its own `tmp` subdirectory created owner-only\n\n**Evidence**\n\n`await hu(e, 448)`\n\n- Area: Plugin Eval\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 3\/5"}