Skip to content

chore: align source build prerequisites and retire inert tsup override - #450

Closed
Helweg wants to merge 1 commit into
mainfrom
maint/tsup9-build-policy
Closed

Helweg wants to merge 1 commit into
mainfrom
maint/tsup9-build-policy

Conversation

@Helweg

@Helweg Helweg commented Oct 19, 2026

Copy link
Copy Markdown
Owner

DRAFT — LOCAL REQUIRED GATE FAILED; MERGE BLOCKED.

The fresh full suite has one unresolved failure. The separate instrumented diagnostic below is not a passing acceptance rerun or a waiver; no cause or flakiness is claimed.

Scope

  • Document the qualified source-development Node range ^22.19.0 || ^24.11.0 || >=26.0.0: Pi already required Node >=22.19; tsup 9 qualifies the supported branches. Keep the published runtime floor >=22.13.0.
  • Explain the one-time native bootstrap for a fresh checkout before the combined build's TypeScript CLI smoke; existing addons can skip it. No build scripts change.
  • Remove only overrides["tsup@^8.1.0"], already shown inert by the reviewed same-manifest fresh two-way resolution: added/removed/version-changed/full non-root metadata-change lists were empty. Preserve the carried lock, not the unrelated fresh-resolution graph.
  • Update SECURITY's tsup/chord history accurately: carried root esbuild0.28.1 and tsup9-nested0.28.2; tsup9 declares ^0.28.2, the patched0.28.1 floor and all four other overrides remain. Add one Unreleased hygiene entry.

Exactly five files: CONTRIBUTING.md, README.md, SECURITY.md, CHANGELOG.md, package.json. Version0.37.0, runtime/peer/tool/adapter contracts and package-lock bytes are unchanged.

Fresh verification on this exact source overlay (macOS ARM64)

Source checks used actual Node26.9.0/npm11.19.1, sequentially, with a new private cache:

Command Observed result
npm ci exit0
npm audit --json --include=dev exit0, zero vulnerabilities
npm run build exit0
npm run typecheck exit0
npm run lint exit0
npm run test:run exit1: 1 failed, 2825 passed, 6 skipped; 1 failed/142 passed/1 skipped test files

The new required failure is tests/include-excluded-paths-indexing.test.ts, “preserves the default Chokidar rejection of root build-named file changes”: line519's positive-control updated ordinary definition remained false for20s; later root-build exclusion assertions were not reached. Original failed worker/native/fixture identity was not captured, and the source cleanup code does not prove original fixture presence or absence. Test/indexer/watcher/native-loader/config/lock bytes match the base; this is not causal proof.

A separately reviewed, single new instrumented diagnostic of the unchanged original case exited0 (1passed/30skipped,1496ms). Raw observation and closed-before-delete own-fixture snapshots were retained privately. It does not clear the failed full gate or establish the original cause: timing/load/private TMPDIR differ, direct callback-body entry is MISSING, PromiseHook inspection is not a verdict, constructor kind labels collide (creation IDs/raw ordering retained), and worker exit signal was unobserved; the three exact diagnostic PIDs were later absent. No second ordinal, full-suite retry, assertion weakening, source repair or baseline change was performed.

Independent fresh packed-consumer proof passed for both package identities on official Node22.13.0/npm10.9.2, with engine-strict=true: all19 observed Node processes including actual npm installs used the minimum interpreter via PATH, native loads succeeded, and every expected CLI alias produced its indexing estimate. --ignore-scripts was used for pack/install: consumer installation hooks are not covered. These results do not waive the required local suite failure or claim other optional platforms.

Carried package-lock SHA256: d034a34a54ae69dcef22986c6a04c07b978f79f7fbf782c700811624878915da.

Hold all merges. This draft preserves the bounded housekeeping change and allows current-head CI review while the new local failure remains unresolved.

@Helweg Helweg added the chore Maintenance and CI label Oct 19, 2026
@Helweg

Helweg commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner Author

Diagnostic addendum — merge remains blocked

The original required local full suite remains FAILED: tests/include-excluded-paths-indexing.test.ts:519 expected the updated ordinary definition to be present, but received false after 20 seconds. Callback-presence and later exclusion assertions were not reached. The original failing worker/native identity, fixture state and causal event/index trace were not captured; no cause or watcher fix has been demonstrated.

Two separately reviewed, explicitly authorized diagnostic-only captures were retained without changing production/test source or assertions: (1) the exact single case passed in 1496 ms; (2) the original full Vitest selection passed 2826 tests with 6 skipped, 143 files passed/1 skipped, in 76.15 seconds (CLI exit 0, no signal). The second capture observed the newly bound ordinary-change → scheduleFlush → flush → index chain. Instrumentation, private TMPDIR and timing/load differ; direct callback/cached-native identity remain missing where unobserved. The full-selection capture used already-built artifacts and did not repeat npm pretest/native-build hooks. These are bounded nonreproductions, NOT acceptance reruns, proof of flakiness, cause, or repair, and they do not replace the original failed gate.

Remote CI run 39257530092 on exact head 0a54e959210b03d21180cb0bf5235a17add359b8 succeeded, including CodeQL. This is separate evidence and does not clear the local blocker. The PR remains DRAFT / UNMERGED / HOLD. No further diagnostic campaign, source fix or merge is authorized. Evidence-supported watcher repair requires causal failure capture or a separately scoped investigation/risk decision.

Raw logs, executed source/pins, grants, lifecycle receipts and owned-fixture snapshots are retained in the private maintenance evidence bundle for both diagnostic captures.

@Helweg

Helweg commented Oct 26, 2026

Copy link
Copy Markdown
Owner Author

Closing as superseded, not as a passing acceptance result. PR #455 already landed the qualified source-development Node policy and native-first combined build; PR #460 landed the obsolete tsup override removal and security-history update. The bootstrap/TypeScript-first explanation in this draft no longer matches current main. The original local acceptance failure in tests/include-excluded-paths-indexing.test.ts:519 remains recorded and is not waived, diagnosed as flaky, or claimed fixed by this closure. Separate passing diagnostics and old green CI do not change that historical result. Current runtime-floor documentation is being handled with the separately authorized Node 22.22 / Chokidar 6 replacement for #471. No source or diagnostic changes were made to this draft, and its branch/evidence are retained.

@Helweg Helweg closed this Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance and CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant