何を見つけたか
ndf 10.16.0(タグ ndf--v10.16.0)の監視は、codex と claude(テキスト出力)の利用上限の文言を利用上限として読まない。 担当が上限で止まると理由が usage_limit ではなく missing になり、read_launch_outcome は relaunch_same_agent=True を返す。つまり同じラウンドで起動し直す。
導入先の monitor.py へ文言を与えて read_launch_outcome で結末を読んだ結果(2026-09-22T15:11Z):
| 担当 |
与えた文言 |
監視の結末 |
理由 |
起動し直す |
| kiro |
Monthly request limit reached |
EARLY_ERROR |
usage_limit |
しない(合格) |
| claude(JSON) |
{"type":"result",...,"api_error_status":429,...} |
EARLY_ERROR |
usage_limit |
しない(合格) |
| codex |
ERROR: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at … |
NO_RESULT |
missing |
する |
| codex(API キー) |
ERROR: exceeded retry limit, last status: 429 Too Many Requests |
NO_RESULT |
missing |
する |
| claude(テキスト・旧) |
Claude AI usage limit reached|1758553200 |
NO_RESULT |
missing |
する |
| claude(テキスト・新) |
You've hit your limit · resets 3am (UTC) |
NO_RESULT |
missing |
する |
codex の文言は手元の ~/.codex/sessions の記録に 62 件残っている実物の error.message である。codex がこの本文を err.log へ書くときの行頭の形(ERROR: の有無)は実機で見ていないが、下の 4 つのパターンはどれも本文に当たらないため、結論は行頭の形によらない。
どこで見つけたか
なぜこの変更の範囲外なのか
#729 の受け入れ条件は「利用上限で止まった担当が理由『利用上限』で報告され、起動し直されない」で、この版は kiro と claude(JSON)の文言でそれを満たした。codex と claude のテキスト出力の文言は要求・設計の時点で集めておらず、パターンに入っていない。リリース後テストで見つかった不具合は配布した版で直さず、別のまとまり(10.16.1)で直す(仕上げの持ち場の規則)。
直さないと何が起きるか
cross-review / cross-refactoring で codex(既定の参加者)が利用上限に当たると、#619 と同じく上限であることが出ないまま同じラウンドで起動し直し、また上限で落ちる。上限は解けないため、打ち切りまで枠と時間を使う。完了報告にも理由「利用上限」が出ない。
由来
issue #619 / issue #729 のリリース後テスト(PR #810、ndf 10.16.0)
進行
モード: standard / 作業ツリー: .worktrees/fix/issue-811-813-release-verification-fixes / 計画: issues/issue-811-813-implementation-plan.md
閉じる理由(2026-09-22)
振り返り: #832 (comment)
何を見つけたか
ndf 10.16.0(タグ
ndf--v10.16.0)の監視は、codex と claude(テキスト出力)の利用上限の文言を利用上限として読まない。 担当が上限で止まると理由がusage_limitではなくmissingになり、read_launch_outcomeはrelaunch_same_agent=Trueを返す。つまり同じラウンドで起動し直す。導入先の
monitor.pyへ文言を与えてread_launch_outcomeで結末を読んだ結果(2026-09-22T15:11Z):Monthly request limit reachedusage_limit{"type":"result",...,"api_error_status":429,...}usage_limitERROR: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at …missingERROR: exceeded retry limit, last status: 429 Too Many RequestsmissingClaude AI usage limit reached|1758553200missingYou've hit your limit · resets 3am (UTC)missingcodex の文言は手元の
~/.codex/sessionsの記録に 62 件残っている実物のerror.messageである。codex がこの本文を err.log へ書くときの行頭の形(ERROR:の有無)は実機で見ていないが、下の 4 つのパターンはどれも本文に当たらないため、結論は行頭の形によらない。どこで見つけたか
plugins/ndf/scripts/lib/monitor.pyのUSAGE_LIMIT_FATAL(154〜164 行)。パターンはMonthly request limit reached/"api_error_status"\s*:\s*429/\b(?:quota exceeded|rate limit exceeded)\b/^HTTP/\d\S* 429の 4 つだけなぜこの変更の範囲外なのか
#729 の受け入れ条件は「利用上限で止まった担当が理由『利用上限』で報告され、起動し直されない」で、この版は kiro と claude(JSON)の文言でそれを満たした。codex と claude のテキスト出力の文言は要求・設計の時点で集めておらず、パターンに入っていない。リリース後テストで見つかった不具合は配布した版で直さず、別のまとまり(10.16.1)で直す(仕上げの持ち場の規則)。
直さないと何が起きるか
cross-review/cross-refactoringで codex(既定の参加者)が利用上限に当たると、#619 と同じく上限であることが出ないまま同じラウンドで起動し直し、また上限で落ちる。上限は解けないため、打ち切りまで枠と時間を使う。完了報告にも理由「利用上限」が出ない。由来
issue #619 / issue #729 のリリース後テスト(PR #810、ndf 10.16.0)
進行
モード: standard / 作業ツリー:
.worktrees/fix/issue-811-813-release-verification-fixes/ 計画:issues/issue-811-813-implementation-plan.md閉じる理由(2026-09-22)
^(?:ERROR:\s*)?You['’]ve hit your (?:[\w'’ ]+ )?(?:limit|budget)\bと^(?:ERROR:\s*)?exceeded retry limit, last status: 429\bの 2 行で、行頭で始まる形だけを読むmainへ、タグndf--v10.16.1=965c622b。開発版 10.16.1-dev.1 は Release: ndf v10.16.1-dev.1 #826)EARLY_ERRORexit=4reason=usage_limitrelaunch_same_agent=False。記録: Release: ndf v10.16.1 #831 (comment)振り返り: #832 (comment)