Max hours ends chat but leaves its delegated run running
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- go
- Ambito
- backend, cli, documentation, testing-qa
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Go
- Stelle
- 115
- Fork
- 14
- Merge medio
- 9h 35m
- PR unite (30g)
- 752
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Agent-Field/CodeAF
-
area:chat bug sev:papercut
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
Agent-Field/CodeAF#1592 ·
I maintainer di solito rispondono entro 1 giorno
-
area:headless bug sev:critical
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
Agent-Field/CodeAF#1566 ·
I maintainer di solito rispondono entro 1 giorno
-
area:chat bug sev:critical
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Agent-Field/CodeAF#1548 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area:chat feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
Agent-Field/CodeAF#1510 ·
I maintainer di solito rispondono entro 1 giorno
-
area:tests bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Agent-Field/CodeAF#1489 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Agent-Field/CodeAF
Issue simili
-
area/proxy kind/bug priority/backlog triage/accepted
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
lexfrei/cloudflare-tunnel-gateway-controller#840 ·
I maintainer di solito rispondono entro 1 giorno
-
kind/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 7 giorni
-
bug needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
bug P2 reliability
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
afreidah/s3-orchestrator#1564 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
blinklabs-io/gouroboros#2577 ·
I maintainer di solito rispondono entro 1 giorno