You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The maintainer requires every test and benchmark to run in a COPY-based Docker container, with no host checkout or Git-directory mounts and no isolation bypass flags. Existing PR #915 implements the execution boundary but has four unresolved review findings. This executable card owns that PR and its complete acceptance outcome for v20.0.0.
2. Problem Description
Current main still runs several CI test and performance commands on the runner host. PR #915 routes commands into Docker, but its performance job uses a runner-mounted workspace, direct commands can miss the package binary directory, watch mode sees a static snapshot, and automatic container removal loses generated reports and ratchet outputs.
2b. Proposed Solution
Complete the Docker execution boundary: copy both performance revisions into an image, resolve package executables inside the container, refresh copied source for watch iterations, and export only declared results before removing containers. Preserve command exit status and cleanup on failure or interruption.
2c. Alternatives considered and rejected
Runner job containers: reject because their checkout remains a host mount.
Host test execution or environment bypass flags: reject because they violate isolation.
Silently dropping watch behavior or generated outputs: reject because existing maintainer commands must remain usable.
2d. Acceptance Criteria
All npm/direct test, smoke, BATS, Deno, coverage, and performance entry points either execute in Docker or refuse before loading tests.
No test container mounts a host repository or Git directory; performance base and head are copied into its image.
Direct package commands resolve installed executables without network installation.
Watch mode observes source edits through copy/rebuild execution, without a repository mount.
Coverage reports, ratchet snapshots, and permitted coverage-threshold updates survive container cleanup; only the authorized coverage command may update thresholds.
Errors and signals retain useful evidence, preserve failure status, and clean up owned containers.
Known failure modes: forged Docker flags, automatic runner mounts, missing executable PATH, stale watch snapshots, deleted outputs, accidental overwrites outside the allowlist.
Fuzz and stress: deterministic fixture runners and bounded watch/edit cycles; no host tests or repository mounts.
3. Prerequisites
No separate implementation PR is required. Current main must be merged normally; history must not be rewritten.
4. Scope
In: the shared test/benchmark execution boundary, its workflows, artifact handling, watch behavior, guards, documentation and regressions in PR #915.
Out: domain runtime fixes, test-harness performance redesign, the separately owned Bun frozen-install repair (#865), and the independently executable public-registry consumer lifecycle (#922). The complete Docker-only release requirement is preserved across #921 and #922; both remain in v20.0.0.
Safe intermediate state: existing commands remain usable with isolation enforced, and main passes its required checks immediately after merge.
5. Why now
Release validation cannot satisfy the maintainer's isolation rule until this lands. The inherited host-executing workflows for PR #914 were canceled; that PR will be refreshed and revalidated after this prerequisite merges.
6. Risks
Source synchronization and exported files must not overwrite unrelated host work. Signals and failed tests must not lose evidence or leave test containers running. Performance measurements must retain exact base/head identities.
7. Definition of Done
Acceptance checks have concrete Docker evidence; review threads are resolved by their corresponding fixes; PR #915 merges; both trackers link the mainline integration commit. Merely detecting a container is insufficient proof of checkout isolation.
8. Stakeholders
James Ross, contributors, CI operators, and release consumers who depend on trustworthy validation.
9. Related Issues
Blocks completion of #891's hosted validation and release coordinator #876. Related to #865, #870, and #882; those retain their separate outcomes and PR ownership.
1. Background Context
The maintainer requires every test and benchmark to run in a COPY-based Docker container, with no host checkout or Git-directory mounts and no isolation bypass flags. Existing PR #915 implements the execution boundary but has four unresolved review findings. This executable card owns that PR and its complete acceptance outcome for v20.0.0.
2. Problem Description
Current main still runs several CI test and performance commands on the runner host. PR #915 routes commands into Docker, but its performance job uses a runner-mounted workspace, direct commands can miss the package binary directory, watch mode sees a static snapshot, and automatic container removal loses generated reports and ratchet outputs.
2b. Proposed Solution
Complete the Docker execution boundary: copy both performance revisions into an image, resolve package executables inside the container, refresh copied source for watch iterations, and export only declared results before removing containers. Preserve command exit status and cleanup on failure or interruption.
2c. Alternatives considered and rejected
2d. Acceptance Criteria
2e. Test Plan
Golden: real COPY-based Docker execution and artifact export.
Edges: commands outside npm, argument forwarding, nonzero exits, cancellation, missing optional outputs, repeated watch edits and cleanup.
Known failure modes: forged Docker flags, automatic runner mounts, missing executable PATH, stale watch snapshots, deleted outputs, accidental overwrites outside the allowlist.
Fuzz and stress: deterministic fixture runners and bounded watch/edit cycles; no host tests or repository mounts.
3. Prerequisites
No separate implementation PR is required. Current main must be merged normally; history must not be rewritten.
4. Scope
In: the shared test/benchmark execution boundary, its workflows, artifact handling, watch behavior, guards, documentation and regressions in PR #915.
Out: domain runtime fixes, test-harness performance redesign, the separately owned Bun frozen-install repair (#865), and the independently executable public-registry consumer lifecycle (#922). The complete Docker-only release requirement is preserved across #921 and #922; both remain in v20.0.0.
Safe intermediate state: existing commands remain usable with isolation enforced, and main passes its required checks immediately after merge.
5. Why now
Release validation cannot satisfy the maintainer's isolation rule until this lands. The inherited host-executing workflows for PR #914 were canceled; that PR will be refreshed and revalidated after this prerequisite merges.
6. Risks
Source synchronization and exported files must not overwrite unrelated host work. Signals and failed tests must not lose evidence or leave test containers running. Performance measurements must retain exact base/head identities.
7. Definition of Done
Acceptance checks have concrete Docker evidence; review threads are resolved by their corresponding fixes; PR #915 merges; both trackers link the mainline integration commit. Merely detecting a container is insufficient proof of checkout isolation.
8. Stakeholders
James Ross, contributors, CI operators, and release consumers who depend on trustworthy validation.
9. Related Issues
Blocks completion of #891's hosted validation and release coordinator #876. Related to #865, #870, and #882; those retain their separate outcomes and PR ownership.