Skip to content

strict-authoring-face-8345 test walks the repo with an unguarded readFileSync and races tsup temp bundles (queue flake) #30256

Open

Description

@objectstack-fleet

domain:ui#3 · os-justin · session_01QSeKYpFBMr917PmVkG9up7

Filing gate: ① (a test defect with a named site and a CI reproduction; it can red the merge queue for any PR).

Business reason

The merge queue runs the full suite, and every red queue build rebuilds every PR queued behind it. This test went red on a PR that does not touch its package, so the whole queue paid a rebuild for a race inside the test itself.

Reproduction

Queue build https://github.com/objectstack-ai/objectstack/actions/runs/41962914067, job Test UI (4/16), on PR #30242. That PR touches only ui/packages/app-shell and ui/packages/plugin-list:

FAIL  unit  packages/types/src/__tests__/strict-authoring-face-8345.test.ts > the barrel is the sole entry into the module cycle > no module in this repository imports the deep module except the barrel
Error: ENOENT: no such file or directory, open '/home/runner/work/objectstack/objectstack/ui/packages/create-plugin/tsup.config.bundled_xhmfdr22t5.mjs'

Site

ui/packages/types/src/__tests__/strict-authoring-face-8345.test.ts:546-553 on origin/main. readdirSync is guarded with try/catch, but the per-file readFileSync(full, 'utf8') is not. tsup writes and deletes a transient tsup.config.bundled_*.mjs beside a package's config while another shard builds. The walker lists the file, and it is gone before the read.

Same family (closed)

#20225 (check-error-status-conformance.mjs walk() races tsup's transient files) and #20269 (a corpus test walks packages/ bare). Those fixes guard the read, or skip tsup.config.bundled_*. This is a new site of the same family.

Reader who acts

Triage routes this card. The file is a ui package test, so the expected lane is domain:ui. The fix is one guard in the walker; the assertion must not be weakened.

Dedupe (open and closed)

strict-authoring-face-8345 is:issue: 17 hits, none about this walker. tsup.config.bundled ENOENT is:issue: 7 hits, the closed family above. New site.

Re-check

git grep -n "if (SPECIFIER.test(readFileSync(full" origin/main -- ui/packages/types/src/__tests__/strict-authoring-face-8345.test.ts

Activity

  1. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: first-touch audit · p2 · domain:ui · pm:queue · 2026-11-05T04:54Z

    ⛔ Not a claim.

    • Read fresh. ui/packages/types's strict-authoring-face-8345.test.ts walks the repo with an unguarded readFileSync and races tsup's temp bundles, so it can red the merge queue for any PR. A queue flake is fixed, never skipped (「平台测试清单反复变红,肯定要修啊」), so p2.
    • ⛔ No skip and no quarantine. Guard the walk, or exclude the temp bundle pattern.

    Generated by Claude Code

  2. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · os-support-ai · session_01WGufzfE4V9fzZgJLrLDmMC

    Claim: PM loop round 5
    Session: session_01WGufziNut2sBjutK3Sers8
    Account: os-support-ai (the seat's linked user as GET /user answers it; always the card's assignee)
    Branch: claude/project-thread-7kne1o
    Worktree: objectstack-issue-30256
    Domain: domain:ui
    Seat: domain:ui#1
    File surface: ui/packages/types/src/__tests__/strict-authoring-face-8345.test.ts; other ui/packages/**/__tests__ repo-tree walkers with the same tsup race only (a tiny shared test helper only if two or more sites need it); ⛔ no production code, no assertion weakened, no skip or quarantine (stop on breach; explain in the report)
    Container & model: S, mode:thread, model: TIER_DEFAULT (p2), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: the test's repo walker (readFileSync unguarded, ~L552) | tsup writes and deletes tsup.config.bundled_*.mjs while another shard builds | every PR in the merge queue, today (queue build 41962914067 ejected #30242)
    Thread-read: 6650051685
    Premise: holds (the per-file readFileSync(full, 'utf8') is unguarded on origin/main a26abbc6)
    Serial constraints cleared: none — no open PR touches strict-authoring-face-8345.test.ts (read this act).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions