openclaw/scripts/run-tsgo.mjs
Peter Steinberger b78612ac3a
fix(build): bound native declaration inputs to checkout (#138742)
* fix(build): reject cross-checkout native declaration inputs

Refuse ancestor and external dependency inputs before native declaration or package-boundary success records are accepted. Reuse the declared/native path boundary for compiler identity, reads and previous-snapshot keys while preserving consumed-byte, topology, ctime and publication fences. Remove implicit primary-install linking, retaining subdirectory and Windows alias support. The native engine is unchanged; this is fail-before-acceptance rather than hermetic execution. Fixes #138677.

* fix(build): align declaration owners with checkout paths

Use native-canonical namespace and output identities so Windows 8.3 paths
cannot make a declaration owner count its own emitted files as new inputs.
Keep declared cwd ownership for private child joins while snapshots and
publication share physical paths.

Bind the existing declaration-plugin cwd option before plugin construction;
its explicit entry patterns otherwise use ambient cwd and can select no
compiler roots. Preserve explicit overrides and all real receipt, byte,
ctime, topology, inventory, and publication checks.

Cover native short-entry/workspace junction cold and warm behavior, tsdown
alias writers, and explicit entries across node/workspace/AI configurations.

Refs #138677; related #138440.

* test(build): keep remaining compiler fixtures checkout-local

Give the root-lint fixture its own native compiler while retaining real lint tools, ambient types, and source aliases. Keep the shard recorder on its fixture-owned native binary and detach its launcher before replacement. Preserve all diagnostic, enumeration, and signal/join assertions.

Repairs the exact-head CI fixture failure in PR #138742 (native declaration input boundary); production admission remains unchanged.

* fix(build): validate native checkout before bootstrap

Resolve the containing checkout compiler while preserving caller-relative projects. Use the existing native Node shim so refusal and sparse skip precede shared-install or output mutation; keep execution under the artifact owner. Cover actual linked-worktree entries and replace the boundary signal fixture's notification-based readiness with its child-owned PID. Addresses review findings on #138742; preserves strict fail-before-acceptance for #138677.
2026-09-04 19:50:21 -07:00

9 lines
340 B
JavaScript

import { runNodeCliShim } from "./lib/tsx-cli-shim.mjs";
await runNodeCliShim(import.meta.url, {
implementation: "./run-tsgo.mts",
failureTool: "tsgo",
// The implementation owns a detached compiler group and escalates after 5s.
// Its outer shim must stay alive long enough to finish that cleanup.
forceKillDelayMs: 10_000,
});