code-yeongyu / code-yeongyu/senpi
Linux x64 PTY prebuild is built in CI but omitted from npm package
- Dominant language
- TypeScript
- Stars
- 429
- Forks
- 98
- Avg merge
- 5h 3m
- Merged PRs (30d)
- 526
Description
## What happened?
On Linux x64, the published Senpi npm package contains only the Darwin ARM64 PTY prebuild. Persistent background commands therefore report:
```text
native PTY unavailable — running via pipe fallback; bash_input/bash_resize are limited
```
This affects core package loading and is independent of extensions. The pipe backend runs ordinary commands, but interactive input, terminal resizing, and full-screen TUI behavior are degraded.
The Native Prebuilds workflow successfully produces a `native-prebuild-linux-x64` artifact, but that artifact is not staged into the published npm package.
## Steps to reproduce
1. On Linux x64, inspect the current package:
```bash
npm pack @code-yeongyu/senpi@2026.8.29 --dry-run --json \
| jq -r '.[0].files[].path | select(contains("native/prebuilds"))'
```
2. Observe that only this platform prebuild is listed:
```text
node_modules/@earendil-works/pi-pty/native/prebuilds/darwin-arm64/senpi_pty.darwin-arm64.node
```
3. Start a persistent background command on Linux x64 and observe the pipe-fallback warning.
## Expected behavior
Publish `native/prebuilds/linux-x64/senpi_pty.linux-x64.node`, or an equivalent platform package consumed by the loader, so Linux installations use the native PTY artifact already produced by CI.
## Version
- `@code-yeongyu/senpi@2026.8.29`
- Node.js 24.18.0
- npm 11.16.0
- Fedora Linux x86_64
Related: #143 introduced the cross-platform PTY workflow; #172 made absent host prebuilds optional and enabled the pipe fallback.
Contributor guide
Research direction
Start by inspecting the Native Prebuilds workflow and the package staging or packaging configuration, then run the provided npm pack --dry-run command to trace which artifacts are included. Done means the linux-x64 PTY file appears under native/prebuilds in the package and Linux installations load it instead of using the pipe fallback.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, node.js
- Domain
- build-system, release
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100