Why: A tool-budget stop left tool_call messages without results, host callbacks and MCP reads could overlap, the Anthropic and Google presets were not the OpenAI-compatible endpoints, and fetch re-resolved an address after the SSRF check.
Evidence: GOWORK=off go vet ./... && GOWORK=off go test -count=1 ./... && GOWORK=off go test -race ./runtime/... ./adapters/native/... passed. Covers TestLoopBudgetToolCallCap, TestParallelHostCallbacksAreSerial, TestHooksDoNotRunConcurrently, TestStdioSlowCancelThenEcho, TestPresetsAndClientForChatCompletions, TestFetchResolveChangesToLoopbackRejected, TestFetchHostCheckRedirectStillRejectsPrivate.
Impact: Skipped tool calls get an error result and no tool event. One run serializes host callbacks. The stdio client has a single reader. ClientFor accepts only the OpenAI chat protocol. Fetch dials the address it already checked, and every redirect is checked again. deps/agent-intent is 3130190.
Why: A tool-budget stop left tool_call messages without results, host callbacks and MCP reads could overlap, the Anthropic and Google presets were not the OpenAI-compatible endpoints, and fetch re-resolved an address after the SSRF check.
Evidence: GOWORK=off go vet ./... && GOWORK=off go test -count=1 ./... && GOWORK=off go test -race ./runtime/... ./adapters/native/... passed. Covers TestLoopBudgetToolCallCap, TestParallelHostCallbacksAreSerial, TestHooksDoNotRunConcurrently, TestStdioSlowCancelThenEcho, TestPresetsAndClientForChatCompletions, TestFetchResolveChangesToLoopbackRejected, TestFetchHostCheckRedirectStillRejectsPrivate.
Impact: Skipped tool calls get an error result and no tool event. One run serializes host callbacks. The stdio client has a single reader. ClientFor accepts only the OpenAI chat protocol. Fetch dials the address it already checked, and every redirect is checked again. deps/agent-intent is 3130190.
Refs: N1 N2 N3 N4 N13 N14
合入顺序:Intent → Native → Squad → Backend → Dev。本 PR 不合入。
## 本轮收尾(2026-10-03)
同样改写 CI。钉住 intent 7f7879b。头提交 91c1556。本地 vet、test、race 与 submodule-consistency 通过。
合入、发版、分支保护与 SUBMODULE_TOKEN 仍由所有者执行。
Why: a tool-budget stop left tool calls without results, host callbacks raced, a canceled MCP read stole the next response, and fetch re-resolved after the SSRF check.
Evidence: GOWORK=off go vet ./... && go test -count=1 ./... && go test -race ./runtime/... ./adapters/native/... passed, including TestLoopBudgetToolCallCap, TestParallelHostCallbacksAreSerial, TestStdioSlowCancelThenEcho, TestPresetsAndClientForChatCompletions, TestFetchResolveChangesToLoopbackRejected, and TestFetchHostCheckRedirectStillRejectsPrivate.
Impact: over-budget calls get an error result and no tool event; one Run serializes host callbacks; MCP dispatches by id; anthropic and google presets use OpenAI-compatible chat endpoints; fetch dials the address it just checked. deps/agent-intent is 3130190; error-code-system and logging-system are a3ee67b and 49b5d8b.
Refs: N1, N2, N3, N4, N13, N14
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Checkout did not recurse, so go vet failed without deps/agent-intent, and the runner has no SSH key.
Evidence: Workflow uses recursive HTTPS checkout, setup-go 1.27, GOPROXY=https://goproxy.cn,direct, and PROJECT.md vet plus test plus race.
Impact: vet-and-test runs on ubuntu-latest. SUBMODULE_TOKEN must be set by the owner before checkout can succeed.
Refs: feature/agent-stack-r0-r1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Native must build the intent commit that fetches submodules over HTTPS.
Evidence: deps/agent-intent is 7f7879b06b053f0a62746309b79e0e1b9a00f42d.
Impact: The gitlink matches the open intent pull request head. Nested guideline pins are unchanged.
Refs: feature/agent-stack-r0-r1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The runner cannot reach github.com, so cloning actions/checkout timed out before any test ran.
Evidence: The Go 1.27.1 tarball is available from mirrors.aliyun.com. Checkout uses the job token and GITHUB_SHA.
Impact: Submodule checkout still requires SUBMODULE_TOKEN. A missing secret fails the job with that message.
Refs: feature/agent-stack-r0-r1
Co-authored-by: Cursor <cursoragent@cursor.com>
weichen
merged commit b1f89bf969 into main2026-10-03 12:47:35 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why: A tool-budget stop left tool_call messages without results, host callbacks and MCP reads could overlap, the Anthropic and Google presets were not the OpenAI-compatible endpoints, and fetch re-resolved an address after the SSRF check.
Evidence: GOWORK=off go vet ./... && GOWORK=off go test -count=1 ./... && GOWORK=off go test -race ./runtime/... ./adapters/native/... passed. Covers TestLoopBudgetToolCallCap, TestParallelHostCallbacksAreSerial, TestHooksDoNotRunConcurrently, TestStdioSlowCancelThenEcho, TestPresetsAndClientForChatCompletions, TestFetchResolveChangesToLoopbackRejected, TestFetchHostCheckRedirectStillRejectsPrivate.
Impact: Skipped tool calls get an error result and no tool event. One run serializes host callbacks. The stdio client has a single reader. ClientFor accepts only the OpenAI chat protocol. Fetch dials the address it already checked, and every redirect is checked again. deps/agent-intent is 3130190.
Refs: N1 N2 N3 N4 N13 N14
合入顺序:Intent → Native → Squad → Backend → Dev。本 PR 不合入。
本轮收尾(2026-10-03)
同样改写 CI。钉住 intent 7f7879b。头提交 91c1556。本地 vet、test、race 与 submodule-consistency 通过。
合入、发版、分支保护与 SUBMODULE_TOKEN 仍由所有者执行。