两个根因: 1. earlyInput 的 readableHandler 残留在 stdin 上 setAppCallbacks() 在反编译项目中从未被调用,导致 stopCapturingEarlyInput() 是 no-op,readableHandler 在 Ink 的 handleReadable 之前消费所有 stdin 数据。 修复:在 handleSetRawMode(true) 时移除非自身的 readable listeners。 2. React 19 layout effect cleanup 顺序问题 React 19 先运行新树的 layout effects,再清理旧树。 当旧树(showSetupDialog)比新树(launchResumeChooser) 有更多 useInput hooks 时,旧树 cleanup 把 rawModeEnabledCount 降到 0,错误关闭 raw mode。 修复:当 count=0 但仍有活跃 EventEmitter listeners 时恢复 count。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| @ant | ||
| audio-capture-napi | ||
| color-diff-napi | ||
| image-processor-napi | ||
| modifiers-napi | ||
| url-handler-napi | ||