code-yeongyu / code-yeongyu/senpi

Linux x64 PTY prebuild is built in CI but omitted from npm package

Open
#1,193 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.