Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Bug]: exec timeouts above the Node timer limit cancel almost immediately

オープン 初心者向け
#441 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
78/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
node.js, typescript
領域
cli

調査の方向性

まず packages/tui/src/headless/invocation.ts(L402-419 付近のタイムアウトパーサー)から始め、次に policy.timeoutMs を packages/tui/src/headless/runner.ts(L249-261)経由で packages/tui/src/application/run-coordinator.ts(L198-204)の最終的な setTimeout まで追跡する。Node の 2147483647 ms の制限をどこで強制するかを決めること: パース時に大きすぎる期間を拒否するか、上限のあるタイマー間隔でクランプ/ループさせるか。--timeout 2147483648ms と --timeout 600h が即座に期限切れにならなくなり、報告されたオーバーフロー挙動を再現するテストが通れば完了。

索引モデルが issue の本文から書いたものです。

説明

Product or interface

CLI - headless

Version

Source commit 4401b0edb0e6ad753d3952b75a31ec87807b6aab; Node.js 24.14.1; pnpm 11.7.0.

Platform

Windows x64, OS build 10.0.26200.

Issue area

Other — execution timeout handling.

Steps to reproduce

The headless parser accepts --timeout 2147483648ms and --timeout 600h
because both convert to positive safe integers. The value is forwarded as
policy.timeoutMs, then passed directly to Node's setTimeout:

A minimal check of the underlying Node behavior, with no provider or credentials:

const start = performance.now();
setTimeout(() => console.log('unexpected early expiry:', performance.now() - start), 2147483648);

I also tested the complete pinned invocation and coordinator executable bodies
after Node's TypeScript transformation, using real Node timers and a synthetic
conversation port that finishes after 40 ms. The port records abortSession
calls; no model, network, tool or stored session is used. Three repeats each:

Parsed timeout Coordinator result Abort reason
2h succeeded none
2147483647ms succeeded none
2147483648ms timeout timeout
600h timeout timeout

This is an isolated component reproduction, not a built-CLI, live-provider,
interactive-TUI or ACP acceptance test. No actual 25-day execution is needed.

Expected and actual behavior

Expected: reject unsupported durations before starting a run, or preserve the
requested deadline using bounded timer intervals.

Actual: larger accepted durations cancel the run almost immediately. Node
clamps values above 2147483647 to 1 ms, as documented in
its timer API.
The coordinator separately forwards a deadline about 25 days in the future,
so the immediate local cancellation contradicts that deadline.

This affects unusually large timeout values; ordinary hour-scale controls passed.

Redacted error summary
TimeoutOverflowWarning: 2147483648 does not fit into a 32-bit signed integer.
Timeout duration was set to 1.
Before submitting
  • I have searched existing issues.
  • I have included my version and removed sensitive information.
主要言語
TypeScript
スター
2k
フォーク
250
平均マージ
7時間 9分
マージ済み PR(30日)
133

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

MiniMax-AI/minimax-code のほかの issue

MiniMax-AI/minimax-code の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。