Skip to content

fix: rebuild node-pty from source for Node.js 22+ compatibility - #2

Closed
eYdr1en wants to merge 1 commit into
Ark0N:masterfrom
eYdr1en:fix/node-pty-node22-compatibility
Closed

fix: rebuild node-pty from source for Node.js 22+ compatibility#2
eYdr1en wants to merge 1 commit into
Ark0N:masterfrom
eYdr1en:fix/node-pty-node22-compatibility

Conversation

@eYdr1en

Copy link
Copy Markdown

Summary

  • Adds npm rebuild node-pty --build-from-source step after npm install in the installer
  • Fixes posix_spawnp failed errors when using Node.js 22+

Problem

The prebuilt node-pty binaries (v1.1.0) don't support Node.js 22's ABI version (127). This causes the following error when starting Claudeman:

Error: posix_spawnp failed.
at new UnixTerminal (node_modules/node-pty/lib/unixTerminal.js:92:24)

Solution

Rebuild node-pty from source during installation to ensure it's compiled for the user's specific Node.js version and architecture.

Testing

Verified on macOS (Apple Silicon, arm64) with Node.js v22.19.0:

  • Before fix: PTY spawn fails with posix_spawnp failed
  • After fix: PTY spawns successfully

🤖 Generated with Claude Code

The prebuilt node-pty binaries don't support Node.js 22's ABI version
(127), causing `posix_spawnp failed` errors when spawning PTY sessions.
This fix adds a `npm rebuild node-pty --build-from-source` step after
npm install to ensure the native module is compiled for the user's
specific Node.js version.
Fixes PTY spawn failures on systems running Node.js 22+.
@Ark0N

Copy link
Copy Markdown
Owner

Fixed in 50b1718 — postinstall now runs npm rebuild node-pty --build-from-source for Node.js 22+.

@Ark0NArk0N closed this Feb 18, 2026
michael-ltm pushed a commit to michael-ltm/Codeman that referenced this pull request Jul 4, 2026
- Ark0N#2: drop the "本机"/"(本机)" special-case labels in the fleet device
panel, device <select>, and welcome device row — show the real device
name (local = os.hostname()). A remote viewer sees the true machine name.
- Ark0N#4: persist closed fleet tabs to localStorage (codeman:fleet-hidden-tabs)
so a close survives reloads; prune keys whose session is gone (bounded
set); add a reopen path — clicking a device-panel session row calls
openFleetSessionTab() to unhide + selectSession.
- Ark0N#5: submitFleetCreateSession now opens + selects the new session as a tab
(mirrors _quickStartRemote) and toasts "已在 <设备名> 创建并打开".
Local (non-fleet) session close/behavior is byte-identical: the persistent
hidden set is fleet-key-only (isFleetKey/_looksLikeFleetKey guards), and
requestCloseSession still routes local keys to the confirm modal untouched.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@eYdr1en@Ark0N