Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

codeaf do "" runs a paid job with an empty brief

未关闭 适合新手
#1,566 0 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
88/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
go
领域
cli, testing-qa

调研方向

从 cmd/codeaf/main.go 中 1101-1112 行附近的 readText,以及 1109、1121 和 1126 行的 noGoalGiven 检查开始。运行所述的复现 codeaf do "" 和 codeaf do " ",然后添加或更新 unit 和 e2e 覆盖。完成的标准是两种形式都使用现有的单行 usage 以非零状态退出、不写入 usage 行,并且 readText 将空白参数作为缺少 goal 处理。

由索引模型根据 Issue 内容生成。

描述

area:headless bug sev:critical

Seen on: dev 837b2b0.

Behaviour

codeaf do "" (one empty argument) starts a real, paid run. It exited 0 with stop:"done" and spent $0.057; the crew invented a goal from the repository (it fixed the failing tests). A missing brief should be refused the way a terminal with no piped text is refused, with nothing spent.

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 a failing test: 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 add any failing _test.go file and commit it.
  5. Run codeaf do "" --json; echo exit=$?.
  6. Read the JSON: stop is done, spend_usd is non-zero, and git status shows edits nobody asked for.

Evidence

  • JSON record: "stop":"done", "spend_usd":0.057, exit 0.
  • cmd/codeaf/main.go:1101-1112 (readText): with len(args) > 0 it returns strings.TrimSpace(strings.Join(args, " ")), so one empty argument becomes an empty goal with no error. The noGoalGiven check (main.go:1109, :1121, :1126) runs only on the no-argument and piped paths.

Guessed cause

A guess from reading the code, not a confirmed diagnosis. readText never checks the trimmed argument text for emptiness, so an empty brief reaches the crew and the planner fills the gap from the repository.

Acceptance

  • e2e: codeaf do "" and codeaf do " " exit non-zero with the same one-line usage as codeaf do with no argument, and no usage row is written (codeaf logs shows no call).
  • Unit: readText returns the noGoalGiven error for an all-blank argument list.

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

🤖 Generated with Claude Code

主要语言
Go
星标
115
派生
14
平均合并
9 小时 44 分钟
30 天内合并 PR
766

环境准备

我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

Agent-Field/CodeAF 的其他 Issue

查看 Agent-Field/CodeAF 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。