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

Max hours ends chat but leaves its delegated run running

オープン
#1,352 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

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

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

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
55/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
go

調査の方向性

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 の本文から書いたものです。

説明

area:session bug sev:serious

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.01 with a stub long-running task, assert the exact conversation error, a run reason of a time limit you set stopped it, no running task, stable spend, and exit 0.
  • e2e: Through the same chat without --max-hours, assert the stub remains running past 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.md and internal/manual/chat/task-controls.md quote both time-limit strings, and the change entry's invalidates names the old belief that --max-hours governed 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 を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

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

Agent-Field/CodeAF のほかの issue

Agent-Field/CodeAF の issue をすべて見る

似ている issue

Go の issue をもっと見る

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

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