Skip to content

fix(sandbox): libuv修正入りのNodeが出たら node --test の事前拒否を自動で外す (#734) - #744

Merged
YOSSII812001 merged 1 commit into
mainfrom
fix/734-node-libuv-watch
Oct 6, 2026
Merged

YOSSII812001 merged 1 commit into
mainfrom
fix/734-node-libuv-watch

Conversation

@yusei531642

Copy link
Copy Markdown
Collaborator

概要

Windows サンドボックスでの node --test(プロセス分離あり)の事前拒否は、Node のバージョンを見ずに常に拒否していました。そのため、libuv 1.53 以上(libuv/libuv#5181 の修正入り)を含む Node が公開されても、拒否し続ける状態でした。

この PR で、各系列の「libuv 1.53 未満が入っている最新の公開版」より新しい Node は事前拒否せず、サンドボックス内のパイプガード(#686)に判断を任せるようにしました。ガードは実際の process.versions.uv を見て、修正が無ければ従来どおり即座に失敗させます。そのため、この表を更新しなくても安全側に倒れます。

  • 拒否を続ける版: 22.23.3 以下、24.21.0 以下、26.10.0 以下、および 26 より古い系列(23、25 など)。2026-10-06 に nodejs.org/dist/index.json で確認した、現在公開されている版はすべてここに入ります
  • ガードに任せる版: 上記より新しい版、27 以降の系列
  • バージョンが読めない場合は、従来どおり拒否します

背景(#734 の判断)

  • 上流の Node に libuv 1.53 を取り込む PR(deps: update libuv to 1.53.0 nodejs/node#66282)は、2026-10-06 時点でまだ OPEN で、CI が失敗しています
  • 利用者向けに「Node を更新してください」と案内する対象の版が、まだ存在しません。修正入りの版が公開されれば、この PR とガードによって製品は自動で対応します

検証

  • 赤→緑: 追加した2テストのうち「新しい版は拒否しない」が、変更前に失敗することを確認しました
  • command-runner.test.ts、default-tools.test.ts、sandbox-node-pipe-guard.test.ts: 78件 PASS
  • sandbox-node-pipe-guard.integration.test.ts: 手元では変更前と同じく失敗します。手元の Node 24.13.0 で子プロセスが ENOENT になる、既知の環境差です(tasks/issue-549-node-pipe-fastfail.md に記載)。CI での確認に委ねます
  • typecheck、eslint、prettier: PASS

Refs #734

🤖 Generated with Claude Code

…t the node --test pre-check (#734)

The pre-approval rejection of process-isolated `node --test` in the Windows
sandbox ignored the Node version, so it would keep rejecting even after a Node
release bundling libuv >= 1.53 (libuv/libuv#5181) ships. Releases newer than
the last one known to bundle an older libuv are now left to the in-sandbox
pipe guard, which reads the real libuv version and still fails fast without
the fix. Every currently published release keeps the existing rejection.

Refs #734

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sprintreviewer

sprintreviewer Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

🗺️ PR Walkthrough

Note

Windows サンドボックスでの Node.js --test 事前拒否に、Node のバージョン判定を追加しました。libuv 1.53 未満と確認済みの版は引き続き拒否し、それより新しい版はサンドボックス内ガードに判定を委ねます。

Changed files (2)
File Summary
apps/desktop/src/main/command-runner.ts 既知の旧 libuv を含む系列ごとの最終版を定義し、新しい版や 27 以降の系列は事前拒否を通過させる判定を追加。バージョン不明時は従来どおり拒否します。
apps/desktop/src/main/command-runner.test.ts 旧 libuv が確認された版は拒否され、新しい版は拒否されず、警告も出ないことを検証するテストを追加しました。

Reviewed by vibe-editor-reviewer — head d2a0698

@sprintreviewer sprintreviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Code review

Tip

LGTM — actionable issues were not found.

確認内容

  • ✅ 変更箇所と関連するコード経路を確認
  • ✅ リードが指定した重点ファイルの精査(Claude)を確認

レビュー所感

Node の PE バージョン資源を使う新しい早期拒否判定と、サンドボックス起動時に libuv の実バージョンを確認するガードとの連携を中心に確認しました。通過する版でもガードが環境に設定されることを確認し、重大な再現可能な欠陥は見つかりませんでした。

🛡️ blockingな指摘はありません。bot側の安全設定により、merge-relevantなAPPROVEではなくCOMMENTとして投稿します。

Review coverage & tooling
  • Files: 2 reviewed (+62 / -3)
  • Full file bodies included: 0 / 2
  • Reviewer roles: numeric_consistency (deterministic), codex_primary (gpt-6-luna), claude_specialist (claude-sonnet-5-5, fixed-diff only, partial)

Reviewed by vibe-editor-reviewer — head d2a0698

@YOSSII812001
YOSSII812001 merged commit cb174ba into main Oct 6, 2026
27 checks passed
Sign up for free to 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