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

Checker spend ceiling is shared by the whole run, and the run still says done

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

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

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

評価

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

調査の方向性

Start with internal/config/crewspend.go:100-125 and internal/session/taskcrew.go:560, then reproduce the documented multi-part run using the dev build and inspect its plandb check rows. Trace how checker ceilings are assigned and how failed checks affect the landing summary. Done means each check has its own ceiling and any unfinished check prevents a done status and is named in the landing line.

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

説明

area:session bug sev:critical

Seen on: dev 837b2b0.

Behaviour

In a fan-out run, most per-part checks end failed: the check stopped at its spend ceiling of $0.75, three times its estimate, before it finished: 16 of 20 checks (run 1) and 9 (run 2) in one lane, 5 of 8 and 93 of 100 in another. Each run still ended done, and the summary read "All 20 issues … done". A check that could not finish is not a passed check, and the ceiling reads as per check but behaves as one pool for the run.

Replication

  1. Build dev 837b2b0 (git checkout 837b2b0 && make build, binary bin/codeaf), or install the dev build with curl -fsSL https://agentfield.ai/get/devaf | bash.
  2. Use an isolated profile: export HOME=$(mktemp -d), export OPENROUTER_API_KEY, and keep the default model (~deepseek/deepseek-v4-flash-latest, crew on auto).
  3. On a busy machine set task.max_load to 0 (/settings, Tasks) so the busy-machine gate does not hold tasks.
  4. Make a small repo with many parts: R=$(mktemp -d) && cd "$R" && git init -q && printf 'package main\n\nfunc main() {}\n' > main.go && printf 'module demo\n\ngo 1.22\n' > go.mod && git add -A && git commit -qm init, then create 20 small Go files issue_01.go … issue_20.go, each with one trivial function and a failing test, and commit.
  5. codeaf, then /task Fix every failing test, one part per file issue_NN.go, with a check on every part.
  6. When the run lands, read its plan store (plandb list in the run, or the tasks table of the run's plandb.db): count check: rows with failed: the check stopped at its spend ceiling. Compare with the run's landing line.

Evidence

  • Check rows: failed: the check stopped at its spend ceiling of $0.75, three times its estimate, before it finished (16/20, 9/20, 5/8, 93/100 across four runs); every run ended done.
  • internal/config/crewspend.go:100-118: CrewSeatCeilings returns one ceiling for the crewroute.Checker seat ("THE CEILING BELONGS TO THE SEAT"); crewspend.go:125 is the sentence.
  • internal/session/taskcrew.go:560: SeatCeilings: config.CrewSeatCeilings(d) is set once per crew, so every check in the run draws from it.

Guessed cause

A guess from reading the code, not a confirmed diagnosis. The seat ceiling is keyed per run (the checker seat), not per check, so later checks find it spent. Failed checks are not counted in the landing summary, so the run reports done.

Acceptance

  • e2e: the 20-part run above ends with every check either holding or failing on its own merits; no check ends at a ceiling set for another part.
  • e2e: a run with any check that did not finish does not end done; its landing line names the unfinished checks.

Found while writing the public docs; manual text differences are in #1545.

🤖 Generated with Claude Code

主要言語
Go
スター
115
フォーク
14
平均マージ
9時間 44分
マージ済み PR(30日)
766

環境構築

このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

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

Agent-Field/CodeAF のほかの issue

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

似ている issue

Go の issue をもっと見る

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

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