pnpm 11.7.0 can finish its work, print `Done in Xs`, and then never exit (pnpm/pnpm#12297, pnpm/pnpm#13617): finishWorkers() clears the worker pool reference, and a later worker API call recreates a pool that is never finished, so idle worker threads keep the event loop alive. The upstream fix (pnpm/pnpm#13226) shipped in 11.23.0, and 11.25.0 fixed the hoisted-linker rename race as well. The hang surfaces in this repository as a packed-profile rehearsal that runs `pnpm remove` through the plugin manager and then waits for the test deadline, holding the profile write lock for the whole time. Bump packageManager and devDependencies.pnpm in the root, the pinned pnpm in apps/desktop, and the native/system packageManager; relock; exempt the fresh package manager from the release-age window; follow the development guide pair.
description, kind
| description | kind |
|---|---|
| Prebuilt system primitives for Linux confinement and POSIX Session write locks. | package-library |
@deepseek-ai/node-addon-system
English | 中文
Summary
Use the Linux landlock-run executable to confine subprocesses, or the ./flock entry to acquire a POSIX write lock. Platform packages contain the precompiled binaries; consumer installation never builds native code. Landlock policy and Session lifecycle remain with callers.
Table of Contents
Use
@deepseek-ai/node-addon-system/landlock-run exports launcherPath, probe, and grantArgs for Landlock. Its executable name, flags, and failure semantics are defined by the CLI contract.
The flock behavior contract maps descriptor, process, and advisory-lock semantics to independent native tests.
@deepseek-ai/node-addon-system/flock exports tryLockExclusive(fd): Promise<void>. Keep the descriptor open until completion. Acquisition uses nonblocking exclusive flock; contention rejects with EAGAIN or EWOULDBLOCK, and closing the final descriptor for the open file description releases the lock. See the entry README.
Importing either entry does not load an addon. A missing Landlock executable probes unusable; a missing flock binding rejects acquisition. Neither path compiles or silently grants unsupported behavior.
Support
Linux x64/arm64 packages contain the static Landlock executable and separate glibc/musl system.node files. macOS x64/arm64 packages contain system.node only. Landlock additionally needs an enforcing Linux kernel; Windows uses the Harness's existing locking implementation. The support matrix names builders and verification owners.
Development
From this directory, pnpm build:ts builds the entry, pnpm build:native builds the host's declared native payload, and pnpm build:test-oracle builds an independent flock syscall fixture. Then pnpm test exercises entry, lock, packaging, and available kernel behavior. Linux requires musl-gcc for a complete build; macOS uses cc. The root pnpm run build:native-system builds only the current host addon for source tests.
The architecture, packaging, and release procedure own implementation and publication details.
Dev Note
None.