{"version":"2.1.242","anchor":"plugin-hook-modules-run-in-an-isolated-sandbox-with-time-and","canonical_anchor":"plugin-hook-modules-run-in-an-isolated-sandbox-with-time-and","heading":"Plugin hook modules run in an isolated sandbox with time and size budgets","tier":"soon","area":"Plugins","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242\/e\/plugin-hook-modules-run-in-an-isolated-sandbox-with-time-and","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242","markdown":"### Plugin hook modules run in an isolated sandbox with time and size budgets\n\nPlugin hook modules run in a locked-down sandbox with time and size limits.\n\n**What**\n\nWhen the plugin hook-module feature is enabled, each module runs in its own JavaScript context that cannot generate code, cannot import outside its own plugin folder, and is stopped if it overruns.\n\n**Details**\n\n- Console output is routed into the hook chain report; setTimeout and setInterval are shimmed and cancelled when the plugin unloads.\n- Imports are limited to relative paths inside the plugin directory plus one synthetic types module; TypeScript and TSX sources are transpiled with Bun.\n- Handlers get a budget that can be paused and resumed, and an abort grace period after which the hook is reported as a runaway.\n- Matcher copying is capped by node count and nesting depth; values passed across the boundary are deep-frozen or cloned.\n- Same off-by-default gate as the capability object; nothing here can be switched separately.\n\n**Evidence**\n\n`core table: not an operation`\n\n- Area: Plugins\n- Tier: Nothing to try yet\n- Useful: 2\/5\n- Signal: 3\/5\n- Present in the build but not switched on"}