The browser-edge target currently resolves the default dist/ directory relative to the current process instead of ctx.projectDir, and its build path shells out through execSync to create the output dir and run zip.\n\nThat makes validation/dry-run contexts less predictable:\n\n- ctx.dryRun still reaches source-file validation and shell packaging work\n- project-relative sourceDir values can point at the wrong directory depending on where the CLI process was launched\n- shell command construction is less consistent with the shared target adapter exec pattern\n\nProposed fix:\n\n- resolve relative source directories from ctx.projectDir\n- emit a deterministic dry-run package plan artifact before touching source files or invoking zip\n- use the shared exec helper for real zip packaging\n- add tests for dry-run planning and real package command resolution
The browser-edge target currently resolves the default
dist/directory relative to the current process instead ofctx.projectDir, and its build path shells out throughexecSyncto create the output dir and runzip.\n\nThat makes validation/dry-run contexts less predictable:\n\n-ctx.dryRunstill reaches source-file validation and shell packaging work\n- project-relativesourceDirvalues can point at the wrong directory depending on where the CLI process was launched\n- shell command construction is less consistent with the shared target adapterexecpattern\n\nProposed fix:\n\n- resolve relative source directories fromctx.projectDir\n- emit a deterministic dry-run package plan artifact before touching source files or invokingzip\n- use the sharedexechelper for realzippackaging\n- add tests for dry-run planning and real package command resolution