Skip to content

Parallel smoke workers share tsx transform cache state #2456

Description

@chubes4

Problem

The canonical smoke aggregate launches up to eight independent TypeScript tests concurrently with bare tsx. Those processes share tsx's global per-user disk transform cache.

PR #2455 run https://github.com/Automattic/wp-codebox/actions/runs/33534543967 failed only in the parallel discovery phase:

tests/trusted-apply-artifact-channel.integration.test.ts
SyntaxError: The requested module './cache-churn-observation.js' does not provide an export named 'CACHE_CHURN_OBSERVATION_SCHEMA'

The referenced TypeScript source exports that exact symbol. The focused test passes, both contract suites pass, the package check passes, the full aggregate passes locally, and 64 concurrent focused executions on Node 22.23.2 pass. No discovered test writes the affected source or package configuration.

Root cause

scripts/smoke-discovery.ts maps every TypeScript file to tsx <file>. During the parallel phase, all workers therefore use tsx's shared disk transform cache. The intermittent module shape cannot come from repository source state and only occurs under aggregate load, leaving shared loader cache state as the unisolated boundary.

The tsx CLI provides --no-cache specifically to disable this state. Parallel discoveries are one-shot processes, so persistent transform caching provides little value there.

Acceptance

  • Parallel discovered TypeScript tests run with tsx --no-cache.
  • Declared and serial commands retain their current behavior.
  • A focused discovery contract proves the command split.
  • The full Node 22 concurrent smoke aggregate passes.

AI assistance

OpenAI GPT-5.6 Sol via OpenCode correlated the CI failure with the smoke runner's process model, inspected repository mutation boundaries and tsx cache implementation, and drafted this issue. Chris Huber directed and owns the work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions