Max hours ends chat but leaves its delegated run running
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 55/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- go
- 領域
- backend, cli, documentation, testing-qa
調査の方向性
Start with Agent.launchBudgetBlockLocked in internal/session/interactive_budget.go, v3LaunchShape in cmd/codeaf/chatv3_local.go, and Agent.CancelWithReason in internal/session/cancel.go to trace the conversation time-limit path and delegated-run ownership. Run the specified tmux e2e scenarios and add unit coverage for terminal time-limit paths. Done means owned runs stop and settle before the error, spend remains stable, the no-limit control keeps running, and both manual pages quote the required strings.
索引モデルが issue の本文から書いたものです。
説明
What happened
PRE-EXISTING defect seen on commit 17ae56d34 (staging-20260921-17ae56d3496f) on 2026-09-21 and also on v0.3.0 (9258f7052). Lane A1, item A1-10, launched chat with --max-hours 0.01; both versions eventually printed:
error: conversation time limit reached · start a new conversation or relaunch with a larger --max-hours
The delegated run continued after the advertised interactive conversation: 36s: current staging stayed running past 1m 40s, v0.3.0 past 1m, and the rail and spend continued rising.
Replication
Deterministic (no model).
No no-model reproduction is established; lane A1 exercised the conversation wall around a live delegated run.
Field (real models).
Set OPENROUTER_API_KEY, then start a fresh local chat with the short conversation wall:
root="$(mktemp -d)"; export CODEAF_HOME="$root/home"; repo="$root/repo"
mkdir -p "$CODEAF_HOME" "$repo" && git -C "$repo" init -q
git -C "$repo" -c user.name=Test -c [email protected] commit --allow-empty -m base
cd "$repo" && codeaf chat --no-host --yolo --max-hours 0.01 --model deepseek/deepseek-v4-flash
Enter /task write numbers 1 through 2000, sleeping one second after each number and wait past 36 seconds. Today the exact time-limit error appears while the task remains running and spend rises.
Allow about two minutes and $0.05. Run the same steps on v0.3.0 as the control; it has the same defect.
Where
The launch wall is shaped by Agent.launchBudgetBlockLocked in internal/session/interactive_budget.go and v3LaunchShape in cmd/codeaf/chatv3_local.go; delegated-run cancellation flows through Agent.CancelWithReason in internal/session/cancel.go. The evidence shows the lifecycle split but not its cause.
The fix
When the conversation reaches --max-hours, stop every delegated run owned by that conversation before printing the terminal error. Each stopped run should name a time limit you set stopped it, and no later model usage may be charged to it.
Acceptance
- e2e: Through tmux
codeaf chat --no-host --max-hours 0.01with a stub long-running task, assert the exact conversation error, a run reason ofa time limit you set stopped it, norunningtask, stable spend, and exit 0. - e2e: Through the same chat without
--max-hours, assert the stub remainsrunningpast 36 seconds until the person stops it, proving the wall owns the cancellation. - Unit: Every terminal conversation-time-limit path calls cancellation and waits until all conversation-owned runs are non-running before emitting the error.
- The manual pages
internal/manual/chat/running-from-the-terminal.mdandinternal/manual/chat/task-controls.mdquote both time-limit strings, and the change entry'sinvalidatesnames the old belief that--max-hoursgoverned only the foreground conversation.
Filed from the 2026-09-21 staging verification of 17ae56d34; the lane reports, frames and e2e logs are in the owner's handoff folder for this promotion.
- 主要言語
- Go
- スター
- 115
- フォーク
- 14
- 平均マージ
- 9時間 37分
- マージ済み PR(30日)
- 755
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Agent-Field/CodeAF のほかの issue
-
area:chat bug sev:papercut
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
Agent-Field/CodeAF#1592 ·
メンテナーはふだん 1 日以内に返信
-
area:headless bug sev:critical
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
Agent-Field/CodeAF#1566 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
area:chat feature
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
Agent-Field/CodeAF#1510 ·
メンテナーはふだん 1 日以内に返信
-
area:tests bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
Agent-Field/CodeAF#1489 ·
メンテナーはふだん 1 日以内に返信
-
area:chat bug good first issue sev:papercut
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Agent-Field/CodeAF#1470 ·
メンテナーはふだん 1 日以内に返信
Agent-Field/CodeAF の issue をすべて見る
似ている issue
-
agentic-workflows
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
priority/4/normal status/needs-triage type/bug/unconfirmed
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
authelia/authelia#13292 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
blinklabs-io/actions#138 ·
メンテナーはふだん 1 日以内に返信
-
[UI] AlbumDetails collapses multi-genre list to single primary genre on viewports < lg breakpointオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信